列表推導式(list comprehension)是處理列表(字典、信使)的一種快捷方式,它可以將一個數據序列通過某種操作映射為另一個數據序列。
格式1:基本應用
<code>[表達式 for 變量 in 列表]/<code>
<code># 將列表中所有元素乘以2放到新的列表中 list = [3, 6, 2, 4, 7, 5] rlist = [item * 2 for item in list] print(rlist)/<code>
結果:[6, 12, 4, 8, 14, 10]
格式2:條件篩選(2種)
<code># 按條件篩選變量 [表達式 for 變量 in 列表 if 條件]/<code>
<code># 獲取列表中所有大於4的元素乘以2放到新的列表中 list = [3, 6, 2, 4, 7, 5] rlist = [item * 2 for item in list if item > 4] print(rlist)/<code>
結果:[12, 14, 10]
<code># 按條件對變量進行不同操作 [表達式1 if 條件 else 表達式2 for 變量 in 列表]/<code>
<code># 列表中奇數+1,偶數+2 list = [3, 6, 2, 4, 7, 5] rlist = [item + 2 if item % 2 == 0 else item + 1 for item in list] print(rlist)/<code>
結果:[4, 8, 4, 6, 8, 6]
格式3:嵌套
<code>[表達式 for 變量 in 列表 for 變量 in 列表... ]/<code>
<code># 篩選2個列表中的偶數,按照[(2,4),(2,8),...]樣式組成新的列表 list1 = [3, 6, 2, 4] list2 = [1, 5, 8, 9] rlist = [(x, y) for x in list1 for y in list2 if x % 2 == 0 and y % 2 == 0] print(rlist)/<code>
結果:[(6, 8), (2, 8), (4, 8)]