一、 列表生成式
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. 复杂表达式
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时,才把循环的当前元素添加到列表中。
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. 多层表达式
可以多层for循环来生成列表。
>>>[m+n for m in 'ABC' for n in '123']
['A1','A2','A3','B2','B3','C1','C2','C3']
翻译成循环代码为:
L=[]
for m in 'ABC':
for n in '123':
L.append(m+n)