python - 如何在列表理解中修改 Python 列表的最后一个元素?

标签 python list

我有一个像下面这样的代码段会抛出一个无效的语法错误:

lst = [0, 0, 0]
new_lst = [lst[-1] = i + 1 for i in range(3)]

基本上,我希望 new_lst 成为列表的列表,其中每个列表都是 lst 但最后一个元素已更改。知道如何在 Python 中执行此操作吗?

最佳答案

您只能在它们是独立语句时进行赋值,即不在列表理解范围内。这方面的其他示例是控制语句,如 ifs 或 fors

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/

相关文章:

python - 如何正确地将每一大块数据保存为 Pandas 数据框并将它们相互连接

python - Tkinter 和 pyplot 问题中的显示

list - 如何添加到方案中的嵌入式列表?

python - 使用列表理解修改列表中的列表

python - 为什么 list() == 1 给出结果而 list() > 1 是错误的?

python - numpy 计算的输入/输出验证/转换

python - 打印和格式化输出

python - Sphinx for Python 中函数或类的交叉引用文档

list - 检查内部列表是否在Flutter中包含一些字符串值

list - 带过滤功能的 F# List.mapi 函数