看個例子:
#定義乙個列表
l=[1,2,3,4,5]
#()用於建立乙個list,結果依次返回列表l的元素的平方,返回list
s=[i*i for i inl]#
列印列表s
(s)#
()用於建立乙個生成器,結果依次返回列表l的元素的平方,返回generator
s1=(i*i for i inl)#
以列表形式列印generator的元素值
(list(s1))
#檢視s1的型別
print(type(s1))
輸出:[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
1、列表生成式即list comprehensions,如何生成列表:
a=list(range(1,11))(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 但...