python list comprehension和extend()

use*_*707 3 python list-comprehension extend

以我的方式进入Python(2.7.1)但是没有理解(几个小时)这个:

>>> a = [1, 2]
>>> b = [3, 4]
>>> 
>>> a.extend([b[0]])
>>> a
[1, 2, 3]
>>> 
>>> a.extend([b[1]])
>>> a
[1, 2, 3, 4]
>>> 
>>> m = [a.extend([b[i]]) for i in range(len(b))] # list of lists
>>> m
[None, None]
Run Code Online (Sandbox Code Playgroud)

前两个扩展按预期工作,但是当在列表理解中压缩相同时,它会失败.我究竟做错了什么?

Vla*_*lad 5

extend 就地修改列表.

>>> [a + b[0:i] for i in range(len(b)+1)]
[[1, 2], [1, 2, 3], [1, 2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)