列表解析
創建一個整數列表
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
[]
一個生成器只能運行一次。列表、集合、字符串和字典都存儲在內存中,生成器僅在運行中產生值, 不會被存下來,所以不能重新使用或者備份一 個生成器,再一次迭代此生成器,它已經被銷燬了