一、 列表生成式
1. 生成列表
>>>range(1,11)
[1,2,3,4,5,6,7,8,9,10]
>>>[x*x for in range(1,11)]
[x*x for x in range(1,11)]
>>>[x*(x+1) for x in range(1,100,2)]
[2,12,30,.....,9900]
2. 復(fù)雜表達(dá)式
3. 條件過濾
>>>[x*x for x in range(1,11)]
[1,4,9,16,25,36,49,64,81,100]
>>>[x*x for x in range(1,11) if x%2==0]
[4,16,36,64,100]
只有if為true時,才把循環(huán)的當(dāng)前元素添加到列表中。
isinstance(x,str)可以判斷變量x是否為字符串。
字符串的upper()方法可以返回大寫的子母。
例:
>>>def toUppers(L):
return [x.upper() for x in L if isinstance(x,str)]
>>>print toUpper(['Hello','World',])
['HELLO','WORLD']
4. 多層表達(dá)式
可以多層for循環(huán)來生成列表。
>>>[m+n for m in 'ABC' for n in '123']
['A1','A2','A3','B2','B3','C1','C2','C3']
翻譯成循環(huán)代碼為:
L=[]
for m in 'ABC':
for n in '123':
L.append(m+n)