(1)列表推导会产生一个新的列表对象。
>>>L = [1,2,3,4,5] >>>L = [x+6 for x in L] >>>L [7,8,9,10,11]
(2)列表推导比手动for循环语句运行更快,因为它们的迭代在解释器内部是以C语言的速度执行的。
(3)在文件上使用列表推导
>>>lines = [line.rstrip() for line in open('albus.py')]
(4)扩展的列表推导语法--加上筛选分句if
>>>lines = [line.rstrip() for line in open('albus.py') if line[0] == 'a']
(注:上面的if分句会检查文件中的每一行的第一个字符是否为a,若不是,则将该语句从列表中去除)
(5)扩展的列表推导语法--加上嵌套循环for
>>>[x + y for x in '123' for y in '456'] ['14','15','16','24','25','26','34','35','36']
列表推导仍应做到简单易懂,而非晦涩难懂。
在抽象性和实际性之间找到平衡点,需要知识、经验以及许多思考。
-------Steve Vinoski
浙公网安备 33010602011771号