6-10 list comprehension
Last updated
Was this helpful?
Last updated
Was this helpful?
當我們要建立一個清單時,可以將其內容一個一個寫在中括號之內。如果清單的內容很多時,用一一列舉的寫法不僅容易出錯,有時也不太實際。例如,想建一個內容為1 ~ 1000的清單,採用列舉法實在強人所難。此時如果用清單推導(list comprehension)的方式表示,可以輕鬆的完成此事。如以下的示範:
在以上的例子中,清單的內容宣告為i+1
,但是i
並未說明是什麼?因此在for
指令之後,就說明i
是range(1000)
中的每一個值,也就是0 ~ 999
的值。
再看以下的例子:
在以上的程式,ord('A')
是指A
的內碼,其值為65
,而B
、C
、D
、...依序為66
、67
、68
....,在程式中chr()
將內碼再轉回字元。因此設計讓i從0~25
遞增,再加上65
的基底,就變成A
、B
、C
、D
、 ... 、Y
、Z
。
再看以下例子:
這個例子在list comprehension
中加入if
指令,先用for
指令說明i
是什麼,再用if
指令說明i的條件。
建立一個清單,內容是小寫英文'a' ~ 'z'。
建立一個清單,內容是2的1次方 ~ 2的10次方。
建立一個清單,內容是1~100中所有除以5的餘數為3的數。