3.3、列表生成器
[n+m for m in 'abc' for n in 'ABC']
>>> import os # 导入os模块,模块的概念后面讲到
>>> [d for d in os.listdir('.')] # os.listdir可以列出文件和目录
['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']
k+'='+v for k,v in d.items()
s.lower() for s in L
在一个列表生成式中,for
前面的if ... else
是表达式,而for
后面的if
是过滤条件,不能带else
。
x if x%2==0 else -x for x in range(1,11)
x.lower() if isinstance(x,str) else x for x in rangeL1
前者表示是字符则变小写否则保持原样
后者筛选出是字符串的元素