1.序列赋值
将一个序列中的数赋值给多个变量的语法
>>> l = (1, 2, 3, 4) >>> s, a, d, x = l >>> s 1 >>> a 2 >>> d 3 >>> x 4如果变量数和序列中值不匹配,会报错
>>> l = (1, 2, 3, 4) >>> s, a, d = l Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 3)
2.*号赋值
如果我们想让a为(2, 3)那么我们应该怎么写呢
>>> l = (1, 2, 3, 4) >>> s, *a, d = l >>> s 1 >>> a [2, 3] >>> d 4 >>>
3.查找最大或最小的N歌元素
此处介绍一个模块heapq
该模块提供了一些堆算法,查找最大或最小的N个元素的函数就是基于堆实现
查找最大的N个元素
函数nlargest(N, list)
>>> s = [1,43,12,235,55,21,55,112] >>> heapq.nlargest(5, s) [235, 112, 55, 55, 43] >>>参数N即元素的个数,list则是目标序列
查找最小的N个元素
函数nsmallest(N, list)
>>> s = [1,43,12,235,55,21,55,112] >>> heapq.nsmallest(5, s) [1, 12, 21, 43, 55] >>>参数含义相同
4.zip()函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。需要注意,zip()函数创建的是一个只能访问一次的迭代器
>>> s = zip([1,2,3], [2,3,4,5]) >>> s.__next__() (1, 2) >>> s.__next__() (2, 3) >>> s.__next__() (3, 4) >>> s.__next__()
zip()搭配*号可以将zip过的序列还原