【问题标题】:Replacing string with tuple in list of tuples用元组列表中的元组替换字符串
【发布时间】:2023-04-02 17:34:01
【问题描述】:

我很抱歉问这种新手问题,但它就是这样。所以我基本上把它作为级别返回:

levels = [(1, 210, 30, 500, 500, 'white'),(1, 210, 30, 200, 400, 'white'),(1, 210, 30, 600, 300, 'white')]

我想遍历它并将“白色”替换为简单的白色 (255,255,255)。 Python 抱怨元组不可更改,所以我需要用元组而不是白色创建一个新列表。有没有快速的方法来做到这一点?

【问题讨论】:

  • 你想要1, 210, 30, 500, 500, '255,255,255'还是1, 210, 30, 500, 500, (255,255,255),还是1, 210, 30, 500, 500, 255, 255, 255

标签: python list replace tuples


【解决方案1】:

只是做

levelsList = [list(x) for x in level]

之后你可以改变'white'字符串

【讨论】:

  • 不客气。如果您还想在一行中替换白色,您可以通过levelsList2 = [[(255,255,255) if l=='white' else l for l in level] for level in levelsList] 来完成,但这并不能真正提高可读性
  • 出于某种原因,这工作了好几天,但现在不行了。我很茫然。
  • 奇怪你在关卡列表中改变了什么?
【解决方案2】:

如果你想把它保存为一个元组列表,你可以试试:

replacements = {"white": (255, 255, 255)}
levelsList = [(a, b, c, d, e, replacements.get(f, f)) for a, b, c, d, e, f in levels]

【讨论】:

  • 谢谢,这也是一个很好的方法:)
猜你喜欢
  • 1970-01-01
  • 2014-05-29
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多