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 列表生成式
列表生成式即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 但...
python列表生成式
全都是重點!列表生成式即listcomprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成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 但如果要生成...
python列表生成式
全都是重點!列表生成式即listcomprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。舉個例子,要生成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 但如果要生成...