这取决于你是想要一个新列表还是改变旧列表:
- [l.insert(0,str(i)) for i,l in enumerate(docs)]
- [l.insert(0,str(i)) 或 l for i,l in enumerate(docs)]
- [[str(i)]+docs[i] for i in range(len(docs))]
这将改变旧列表,但只是作为副作用,“返回”列表是错误的:
>>> x = [['a'],['b']]
>>> [ l.insert(0,str(i)) for i,l in enumerate(x)]
[None, None]
>>> x
[['0', 'a'], ['1', 'b']]
这可以解决:
>>> x = [['a'],['b']]
>>> [ l.insert(0,str(i)) or l for i,l in enumerate(x)]
[['0', 'a'], ['1', 'b']]
>>> x
[['0', 'a'], ['1', 'b']]
>>>
或者可以在不改变旧列表的情况下生成新列表:
>>> y = [['a'],['b']]
>>> [ [str(i)]+y[i] for i in range(len(y))]
[['0', 'a'], ['1', 'b']]
>>> y
[['a'], ['b']]