我正在建立这两个问题,因为它们没有完全回答我的问题: 如何更改元组中的值? Python:用空格替换“-”
如果我有一个像这样的元组:
worldstuff = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi'), ...]
Run Code Online (Sandbox Code Playgroud)
如何将元组中所有列表中的所有元素的破折号替换为空格?上一个堆栈溢出问题涉及更改元组中一个列表的特定索引,但如果需要替换的元素多次出现,则不会。
我尝试执行以下操作,但不太有效:
worldstuff_new = [x.replace('-', ' ') for x in worldstuff]
Run Code Online (Sandbox Code Playgroud)
但是,如果我对元组中的特定列表执行此操作,则它适用于该元组列表。我试图避免必须做单独的列表,而是尝试一次完成所有事情。
worldstuff_new = [x.replace('-', ' ') for x in worldstuff[0]]
Run Code Online (Sandbox Code Playgroud)
我知道元组是不可变的,这就是为什么我很难弄清楚这一点。这可能吗?将不胜感激任何帮助 - 谢谢。
正确表达:
a = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi')]
b = [tuple([x.replace('-', ' ') for x in tup]) for tup in a]
>>> b
[('Hi', 'Hello World', 'Earth'), ('Hello World', 'Hi')]
Run Code Online (Sandbox Code Playgroud)
一些注意事项:
tuple)。tuples 是不可变的;但您始终可以从原始元组构建新元组。tuple([x.replace ...])使用(列表理解的元组)而不是tuple(x.replace ...)(生成器的输出元组)?因为前者速度稍快一些。