python之列表生成式

2022-06-22 23:54:13 字數 1284 閱讀 6100

生成乙個[1+1,2+2,3+3,4+4,……,10+10]的列表:

方法一

l1 =

for i in range(1,11):

print(l1)

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

方法二

l2 = [x+x for x in range(1,11)]

print(l2)

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

方法二中只需要一行**就實現了方法一中的功能,方法二採用的便是列表生成式;

寫列表生成式時,需要把表示式:x+x寫在最前面,後面再跟for迴圈;

for迴圈後面還可以加上if判斷

l3 = [x+x for x in range(1,11) if x % 2 ==0]

print(l3)

[4, 8, 12, 16, 20]

for迴圈中還可以再巢狀for迴圈

l4 = [x+y for x in

'123

'for y in

'abc']

print(l4)

['

1a', '

1b', '

1c', '

2a', '

2b', '

2c', '

3a', '

3b', '

3c']

乙個for迴圈中用兩個變數生成列表

d = 

l5 = [k + '

=' + v for k,v in

d.items()]

print(l5)

['

x=1', '

y=2', '

z=3']

列表生成式中if……else的用法

1、for後面加if是乙個篩選條件,不能帶else

2、if在for前面必須加else,因為for前面是乙個表示式

(在列表生成式中,for前面的if……else是表示式,for後面的if是過濾條件,不能帶else)

l6 = [x if x % 2 == 0 else -x for x in range(1,11)]

print(l6)

[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

Python之列表生成式

列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。1 生成list 1,2,3,4,5,6,7,8,9,10 print list range 1,11 2 生成 1x1,2x2,3x3,10x10 方法一 用迴圈 l for x ...

python之列表生成式

一 生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是 迴圈 l for x in range 1,11 但是迴圈太繁瑣...

python六之列表生成式

在python中,我們可以利用range使列表更快捷的生成一些資料,例如 執行a i for i in range 1,18 生成a 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 執行a 11 for i in range 1,18 for後面沒有冒號!生成...