我有一个类似于以下的代码段,它将引发无效的语法错误:
lst = [0, 0, 0]
new_lst = [lst[-1] = i + 1 for i in range(3)]
基本上,我想new_lst
成为列表的列表,每个列表都将在其中,lst
但最后一个元素被更改。任何想法如何在Python中做到这一点?
您只能在它们是独立语句(即不在列表理解范围内)时进行分配。其他示例在控制语句中,例如if
s或for
s
In [945]: lst = [0, 0, 0]
In [946]: new_lst = [lst[:-1] + [i + 1] for i in range(3)]
In [947]: new_lst
Out[947]: [[0, 0, 1], [0, 0, 2], [0, 0, 3]]
lst[:-1]
从lst
最后一个元素中取出每个元素,[i + 1]
并将其附加到列表的末尾
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句