python中的列表推導式 輕量級迴圈

2021-09-07 07:40:24 字數 988 閱讀 4996

列表推導式(list comprehension)是利用其他列表建立新列表(類似於數學術語中的集合推導式)的一種方法。它的工作方式類似於for迴圈,也很簡單。

[表示式 for 變數 in 列表]    或者  [表示式 for 變數 in 列表 if 條件]
#!/usr/bin/python

# -*- coding: utf-8 -*-

li = [1,2,3,4,5,6,7,8,9]

print [x**2 for x in li]

print [x**2 for x in li if x>5]

#還可以生成字典形式

print dict([(x,x*10) for x in li])

print [ (x, y) for x in range(10) if x % 2 if x > 3 for y in range(10) if y > 7 if y != 8 ]

vec=[2,4,6]

vec2=[4,3,-9]

sq = [vec[i]+vec2[i] for i in range(len(vec))]

print sq

print [x*y for x in [1,2,3] for y in [1,2,3]]

testlist = [1,2,3,4]

def mul2(x):

return x*2

print [mul2(i) for i in testlist]

out:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

[36, 49, 64, 81]

#生成的字典形式

[(5, 9), (7, 9), (9, 9)]

[6, 7, -3]

[1, 2, 3, 2, 4, 6, 3, 6, 9]

[2, 4, 6, 8]

Python中列表推導式

理解 舊的列表通過相應的邏輯生成新的列表。列表推導式 格式 表示式 for 變數 in 舊列表 或者 表示式 for 變數 in 舊列表 if 條件 過濾掉長度小於或者等於3的人名。names tom jason jack ha hey lilala result name for name in ...

python中的列表推導式

類似於這樣 x for x in range 101 x for x in range 10 if x 2 0 x y for x in range 10 for y in range 10 式子,就叫做列表推導式 列表推導式的好處就是能快速生成列表 列表推導式的好處就是浪費記憶體 空間複雜度太大 ...

python中的列表推導式

python裡面有個很棒的語法糖 syntactic sugar 它就是list comprehension,有人把它翻譯成 列表推導式 也有人翻譯成 列表解析式 名字聽上去很難理解,但是看它的語法就很清晰了。雖然名字叫做 list comprehension,但是這個語法同樣適用於dict set...