我有一个像下面这样的代码段会抛出一个无效的语法错误:
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]
将附加到列表结束
关于python - 如何在列表理解中修改 Python 列表的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51929478/