首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用空格替换元组中所有元素的破折号?

用空格替换元组中所有元素的破折号?
EN

Stack Overflow用户
提问于 2022-07-06 14:57:19
回答 6查看 78关注 0票数 1

我在讨论这两个问题,因为它们没有完全回答我的问题:如何在元组中更改值? Python:用空格替换"-“

如果我有一个这样的元组:

代码语言:javascript
运行
复制
worldstuff = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi'), ...]

如何用空格替换元组中所有列表中的所有元素?前面的堆栈溢出问题涉及更改元组中一个列表的特定索引,但如果需要替换的元素有多个出现,则不更改。

我试着做了以下工作,但效果不太好:

代码语言:javascript
运行
复制
worldstuff_new = [x.replace('-', ' ') for x in worldstuff]

但是,如果我对元组中的特定列表执行此操作,则对该元组列表有效。我试图避免做单独的列表,而不是一次做所有的事情。

代码语言:javascript
运行
复制
worldstuff_new = [x.replace('-', ' ') for x in worldstuff[0]]

我知道元组是不可变的,这就是为什么我很难弄清楚这一点。这个是可能的吗?会很感激你的帮助-谢谢。

EN

回答 6

Stack Overflow用户

发布于 2022-07-06 15:03:56

正确表达:

代码语言:javascript
运行
复制
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')]

几个注意事项:

  1. 请不要破坏建筑物(tuple)。
  2. 实际上,您拥有的不是元组,而是元组的列表。
  3. 正如您注意到的,tuple是不可变的;但是您可以从原始元组构建新的元组。
  4. (速度)为什么tuple([x.replace ...]) (列表理解的元组)而不是tuple(x.replace ...) (生成器输出的元组)?因为前者稍微快一点。
票数 5
EN

Stack Overflow用户

发布于 2022-07-06 15:04:09

首先,不要将任何变量命名为tuple --这是一个内置函数,当您命名变量tuple时,您忽略了该method

代码语言:javascript
运行
复制
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)

产出:

代码语言:javascript
运行
复制
[('Hi', 'Hello World', 'Earth'), ('Hello World', 'Hi')]
票数 2
EN

Stack Overflow用户

发布于 2022-07-06 15:10:33

代码语言:javascript
运行
复制
tuple_old = [('Hi', 'Hello-World', 'Earth'), ('Hello-World', 'Hi')]
tuple_new = [
    tuple([x.replace('-', ' ') for x in tup]) for tup in tuple_old
]
print(tuple_new)

元组是括号中的内容。名单放在方括号内。所以你有一个元组列表,而不是一个元组列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72885766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档