列表解析、字典解析

列表解析

創建一個整數列表

number_list = [number for number in range(1,6)]
number_list
[1, 2, 3, 4, 5]

使用條件表達式

number_list = [number-1 for number in range(1,6)]
number_list
[0, 1, 2, 3, 4]

創建一個1-5之間的偶數列表

number_list = [number for number in range(1,6) if number % 2 == 0]
number_list
[2, 4]

列表解析和嵌套循環

rows = range(1,4)
cols = range(1,3)
cells = [(row, col) for row in rows for col in cols]
cells
[(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]

rows = range(1,4)
cols = range(1,3)
for row in rows:
    for col in cols:
        print(row, col)
   
1 1
1 2
2 1
2 2
3 1
3 2

字典解析

統計aaaeebekkuek字母出現的次數

word = 'aaaeebekkuek'
counts = {count:word.count(count) for count in word}
counts
{'a': 3, 'b': 1, 'e': 4, 'k': 3, 'u': 1}

集合解析

a_set = {number for number in range(1,20) if number % 3 == 1}
a_set
{1, 4, 7, 10, 13, 16, 19}

生成器解析

number_thing = (number for number in range(1, 6))
#圓括號之間的是生成器解析式,它返回的是一個生成器對象
number_list = list(number_thing)
#過對一個生成器解析式調用 list() 函數,使它類似於列表解析
number_list
[1, 2, 3, 4, 5]

try_again = list(number_thing)
try_again
[]

一個生成器只能運行一次。列表、集合、字符串和字典都存儲在內存中,生成器僅在運行中產生值, 不會被存下來,所以不能重新使用或者備份一 個生成器,再一次迭代此生成器,它已經被銷燬了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章