python筆記21 列表生成式

2022-06-14 09:45:12 字數 2001 閱讀 9262

python裡面表示乙個列表,快速生成乙個列表可以用range()函式來生成。

對列表裡面的資料進行運算和操作,生成新的列表最高效快速的辦法,那就是列表生成式了。

1.乙個連續的數字型別列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成

# coding:utf-8

# a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

b = range(1, 11)

print(b) # 結果 range(1, 11)

print(type(b))

print(list(b)) # 轉list

2.python3直接列印b會顯示range(1, 11)物件,並不是直接顯示應該列表,如果想顯示列表,可以用list()轉下

# 對列表數平方

b = range(1, 11)

c =

for i in b:

print(c)

# 結果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.接下來看看用列表生成式如何去實現

# 對列表數平方

b = range(1, 11)

c = [x*x for x in b]

print(c)

# 結果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.列表生成式語法是固定的,裡面for 前面是對列表裡面資料的運算操作,後面跟平常for循序一樣遍歷去讀取。執行後會自動生成新的列表

1.如果想對乙個列表裡面的資料篩選,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大於0的數,按正常思維可以for迴圈挨個判斷,符合條件的放到新的列表

c = [1, 3, -3, 4, -2, 8, -7, 6]

d =

for i in c:

if i > 0:

print(d)

# 結果:[1, 3, 4, 8, 6]

2.接下來可以看看列表生成式,寫出更加簡潔優雅的**,快速高效!

# 提取大於0的數

c = [1, 3, -3, 4, -2, 8, -7, 6]

d = [x for x in c if x > 0]

print(d)

# 執行結果[1, 3, 4, 8, 6]

1.前面列表生成式都只傳乙個引數x,如果有兩個列表如何去運算呢?

a = [1, 2, 3, 4, 5]

b = ["a", "b", "c", "d", "e"]

如何得出c = ["a1", "b2", "c3", "d4", "e5"]

# coding:utf-8

a = [1, 2, 3, 4, 5]

b = ["a", "b", "c", "d", "e"]

# 多個引數列表生成式

c = [str(x)+str(y) for x, y in zip(b, a)]

print(c)

# 結果:['a1', 'b2', 'c3', 'd4', 'e5']

2.列表生成式的語法是非常優雅的,學會了可以少寫很多**。理解起來也並不難,多聯絡幾次就能熟練掌握了。

python自動化交流 qq群:779429633

python筆記21 列表生成式

python裡面表示乙個列表,快速生成乙個列表可以用range 函式來生成。對列表裡面的資料進行運算和操作,生成新的列表最高效快速的辦法,那就是列表生成式了。1.乙個連續的數字型別列表,比如 1,2,3,4,5,6,7,8,9,10 可以用range生成 coding utf 8 a 1,2,3,4...

Python 學習筆記 4 3 列表生成式

列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成list 1,2,3,4,5,6,7,8,9,10 可以用list range 1,11 list range 1,11 1,2,3,4,5,6,7,8,9,10 但...

python3 列表生成式

列表生成式即list comprehensions,是python內建的非常簡單卻強大的可用來建立list的生成式。舉個例子,要生成list 1,2,3,4,5,6,7,8,9,10 可以用list range 1,11 list range 1,11 1,2,3,4,5,6,7,8,9,10 但如...