【问题标题】:How can I replace multiple elements in a list in python [closed]如何在python中替换列表中的多个元素[关闭]
【发布时间】:2021-07-24 17:58:40
【问题描述】:

我正在用 python 编写一个程序,我目前有这个:

settings[4] = quote_bg.get()
settings[5] = quote_fg.get()

有什么方法我可以只用一行来做到这一点,因为我必须添加更多(按顺序) 提前谢谢你:)

【问题讨论】:

  • settings[4], settings[5] = quote_bg.get(), quote_fg.get()?
  • 你的完整计划是什么?你想把什么加在一起? Can you produce a minimal reproducable example?
  • 它是一个带有 tkinter 的简单程序
  • 如果你有一堆设置,你可以循环进行。我怀疑如果有更多的上下文,整体上更简单的方法会建议自己。
  • 只在一行中完成是没有意义的。你真正想做什么?你说我必须添加更多(按顺序)。你能继续向我们展示那可能是什么样子吗?......即使它很痛苦,也可能不是你希望它最终看起来的样子,这样我们就可以了解你到底想要避免或完成什么。您可能可以做一些更有效的事情,但要求在一行中执行此操作就是所谓的XY problem

标签: python list replace


【解决方案1】:

你可以写:

settings = ['', '', '', '', quote_bg.get(), quote_fg.get()]

或者为了更清楚:

settings = [
    '', # this is settings[0]
    '',
    '',
    '',
    quote_bg.get(), # settings[4]
    quote_fg.get(), # settings[5]
    ...
]

如果其他列表成员不需要更新并且您的quote_xx.get() 调用将settings 从4 填充到n,您可以

settings = ['', '', '', ''] # settings[0] to [3] 
settings.append(quote_bg.get()) # [4]
settings.append(quote_fg.get()) # [5]

或在一行中:

settings.extend( [quote_bg.get(),quote_fg.get()] ) # [4] and [5]

有点实验性,仅供参考,您可以在列表中引用函数本身,然后调用它来更新/显示值:

settings[4] = quote_bg.get # no (), this is not run yet, this is the function object
...
settings[4]() # at some point to update

Ani 是对的,您应该在问题中提供更多背景信息,以了解您是否需要 forloop。

python doc about containers 对您有很大帮助。

【讨论】:

    猜你喜欢
    • 2018-08-16
    • 2023-04-11
    • 2018-01-11
    • 1970-01-01
    • 2021-09-26
    • 2017-07-05
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多