python數據類型(python cookbook讀書筆記一)

    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過的序列還原
發佈了26 篇原創文章 · 獲贊 14 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章