#构造 a = set(a:List[]), 就可以创建一个集合。 a = set() len(a) # 返回长度 # 运算 s3=s1&s2 #交集 s4=s1|s2 #并集 s5=s1-s2 #差集 # 元素插入 & 删除 s.add("val") s.remoce("val") s.clear() #清空
#构造 a = {key:val} a = {} len(a) # 返回长度 a.get(key,default) # 查找,返回对应的val,否则返回default a.has_key(key) #若值存在则返回true a.items() #遍历的迭代器 a.keys() #返回key a.values() #返回values # 元素插入 & 删除 s.update(a) #合并a到s s.pop(key, default) #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 s.clear() #清空
sorted(iterable, cmp=None, key=None, reverse=False)
如何写key:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] sorted(students, key=lambda s: s[2]) # 按年龄排序 # [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
key 和 reverse 比一个等价的 cmp 函数处理速度要快。这是因为对于每个列表元素,cmp 都会被调用多次,而 key 和 reverse 只被调用一次
如何写cmp
python3删掉了关于这部分参数。python2中的cmp函数没有了。
可以使用functools
import functools def cmp(a,b): if a > b : return -1 elif a < b : return 1 else: return 0 nums = [1,2,3,4,5,6] sorted_nums = sorted(nums, key = functools.cmp_to_key(cmp))