【问题标题】:How to convert a vertical string to a horizontal one?如何将垂直字符串转换为水平字符串?
【发布时间】:2021-06-03 05:37:38
【问题描述】:

如何在 Python 中将垂直字符串转换为水平字符串?

我试过了:

result=astring.replace("\n", "")

但它什么也没做,它保持垂直..

代码如下:

names = "".join(name).replace("\n","")
print(names)

“名称”在哪里:

Federica        
Silvio
Enrico

我想要:

Federica, Silvio, Enrico

【问题讨论】:

  • 再次考虑您的问题,考虑使用名称列表。将字符串转换为名称列表,然后将列表转换为所需格式的字符串。但我们不做作业。
  • "it doesn't do nothing",所以它确实做了一些事情
  • 请print(repr(names)) 并将您的问题中显示的内容(而不是)您现在所拥有的内容作为“名称”在哪里:'

标签: python string replace split transpose


【解决方案1】:
x = """Federica
Silvio
Enrico"""
x.replace("\n",', ')

'费德里卡,西尔维奥,恩里科'

您的方法从根本上是错误的,当您应用一个函数时,它将一个可迭代对象与中间的空格组合在一起。例如

" ".join("hello")

'h e l l o'

所以当你在一个没有连接值的字符串上调用它时,这个字符串是不变的。然后将 '\n' 替换为 '',这将使字符串变平但不插入逗号。

【讨论】:

  • 值得注意的是x.replace(...)不会修改x,因为字符串是不可变的。相反,它将返回一个新的修改后的字符串对象。
  • 考虑到在问题中,OP 将值分配给名称,我省略了这个事实。
【解决方案2】:

如果您有字符串格式的名称,例如:

names = """Federica
Silvio
Enrico"""

您可以使用替换将垂直字符串拆分为水平字符串:

result = names.replace("\n", ", ")

结果:

print(results)
'Federica, Silvio, Enrico'

由此,我可以说你的方法没有错,也许你没有存储替换的结果? Replace 不会修改字符串,而是返回一个执行操作的新字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多