我在讨论这两个问题,因为它们没有完全回答我的问题: 如何在元组中更改值? Python:用空格替换"-“
如果我有一个这样的元组:
worldstuff = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi'), ...]
如何用空格替换元组中所有列表中的所有元素?前面的堆栈溢出问题涉及更改元组中一个列表的特定索引,但如果需要替换的元素有多个出现,则不更改。
我试着做了以下工作,但效果不太好:
worldstuff_new = [x.replace('-', ' ') for x in worldstuff]
但是,如果我对元组中的特定列表执行此操作,则对该元组列表有效。我试图避免做单独的列表,而不是一次做所有的事情。
worldstuff_new = [x.replace('-', ' ') for x in worldstuff[0]]
我知道元组是不可变的,这就是为什么我很难弄清楚这一点。这个是可能的吗?会很感激你的帮助-谢谢。
618夏日盛惠
2核2G云服务器首年95元,GPU云服务器低至9.93元/天,还有更多云产品低至0.1折…
正确表达:
a = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi')] b = [tuple([x.replace('-', ' ') for x in tup]) for tup in a] [('Hi', 'Hello World', 'Earth'), ('Hello World', 'Hi')]
几个注意事项:
tuple
tuple([x.replace ...])
tuple(x.replace ...)
首先,不要将任何变量命名为 tuple --这是一个内置函数,当您命名变量 tuple 时,您忽略了该 method
method
def changer(data): if type(data) == str: return data.replace("-", " ") elif type(data) == list: return [changer(x) for x in data] elif type(data) == tuple: return tuple(changer(x) for x in data) tpl = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi')] changer(tpl)
产出:
[('Hi', 'Hello World', 'Earth'), ('Hello World', 'Hi')]
tuple_old = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi')]