首页 > 技术文章 > python中的技巧——杂记

liwenchi 2018-01-22 15:21 原文

杂记

 

zip的用法

对于 a = [1,2,3]
b = [3,2,1]
若要同时遍历
for x, y in zip(a, b):
    pass

zip(a, b)=> [(1,2,3),(3,2,1)]

 

数组复制,以及排序的细节

a = [1,2,3]
b = a
a.sort()
b会随着a一起变化
可以令b = a[:] 就ok了

a.sort()a的内容会改变
b = sorted(a)
用着个Python的内置函数,可以不改变原数组的顺序

 

自定义排序

sorted(people, key=lambda x:(-x[0],x[1]))
说实话不是很会用前面 key=lambda x:() 是固定用法,其中x是随便输的,就代表待排序的序列的一项
()中的内容,表示优先级且依次向后降低
例如people为[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]
先让每一项的一个元素从高到低排列,若一致的按照第二项从低到高排列
输出应该是[[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]

这个功能很玄学,不是很懂

 

集合运算

这个还是很方便的,但是目前还没用过

 1.定义一个集合
     1.对于一个列表 a = []
         set(a)转换为集合,会自动删除重复元素
     2.new一个集合
         a = set()
 
 2.添加元素
     a.add(e)
 
 3.移除元素
     1.若不存在会报错
         a.remove(e)
     2.若不存在不会报错
         a.discard(e)

 

字典推导、集合推导

 

计数器Counter

推荐阅读