所在的位置: python >> python介绍 >> python技巧

python技巧

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


转载请注明:http://www.aierlanlan.com/rzfs/1679.html