python 列表生成式的學習

2022-08-10 15:24:24 字數 1549 閱讀 1828

看個例子:

#

定義乙個列表

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

#()用於建立乙個list,結果依次返回列表l的元素的平方,返回list

s=[i*i for i inl]#

列印列表s

print

(s)#

()用於建立乙個生成器,結果依次返回列表l的元素的平方,返回generator

s1=(i*i for i inl)#

以列表形式列印generator的元素值

print

(list(s1))

#檢視s1的型別

print(type(s1))

輸出:[1, 4, 9, 16, 25]

[1, 4, 9, 16, 25]

1、列表生成式即list comprehensions,如何生成列表:

a=list(range(1,11))

print

(a)print(type(a))

輸出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2、如果要生成乙個[1*1,2*2,......,10*10]的列表:

a=[i*i for i in range(1,11)]

print(a)

輸出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3、根據列表[1*1,2*2,......,10*10],帥選出偶數的平方的乙個列表:

a=[i*i for i in range(1,11) if i%2==0]

print(a)

輸出:[4, 16, 36, 64, 100]

4、使用兩層迴圈,可以生成全排列

a=[m+n for m in

"xyz

"for n in

"abc"]

print(a)

輸出:['xa', 'xb', 'xc', 'ya', 'yb', 'yc', 'za', 'zb', 'zc']

三層迴圈很少用到

5、for迴圈迭代乙個dict,dict的items可以同時迭代key和value,使用兩個變數生成乙個list:

a=

b=[key +'

='+value for key,value in

a.items()]

print(b)

輸出:['a=a', 'b=b', 'c=c']

6、把乙個list所有的字母變成小寫:

a=

b=[i.lower() for i in

a]print(b)

假如list中含有數字則會報錯:attributeerror: 'int' object has no attribute 'lower'

a=

b=[i.lower() for i in a if type(i)==str]

print(b)

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學習筆記 列表生成式

迭代 iterable 可迭代的 可以for迴圈 s hello for i in s print i from collections import iterable print isinstance 1,int print isinstance 1,iterable print isinstan...

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 但...