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過的序列還原