1、求解列表最大值及其下标:
max(zip(nums,range(len(nums))))
2、反转列表:
reversed(range(n))
下面的写法与上面的写法等价
range(n,-1,-1)
下面的写法也能实现列表反转,但是a[3:-1:-1]不能实现边截取边反转,只能通过list(reversed(a[0:4]))实现
a[::-1]
3、二维列表的截取:
[[a[i][j]forjinrange(n//2)]foriinrange(n//2)]
跟matlab不同的是,下面写法无法对列进行截取,因为a[:n//2]本身是一个二维列表
a[:n//2][:n//2]
4、堆的使用,如果使用大顶堆,需要对数值取反:
importqueueq=queue.PriorityQueue()q.put(num)#放置元素q.qsize()#获取队列长度q.get()#取出堆顶元素q.queue[0]#获取堆顶元素
该模块(queue.PriorityQueue)是从下面的模块(heap)总封装成的,具有线程安全的特点
importheap
heapq.heapify(nums)#堆排序数组
heapq.heappush(heap,num)#放入元素
heapq.heappop(heap)#取出堆顶元素
nums[0]#获取堆顶元素
5、排序,自定义排序比较函数
fromfunctoolsimportcmp_to_key
def