将字符串"This is a Python book"中的多余空格删除,即如果有连续空格只保留一?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串"This is a Python book"中的多余空格删除,即如果有连续空格只保留一?相关的知识,希望对你有一定的参考价值。

参考技术A import re
mer_blank = 'Hello world'
print(re.sub(r'\s+',' ',mer_blank))

将列表中的项连接到字符串

有没有更简单的方法将列表中的字符串项连接成一个字符串?

我可以使用str.join()函数加入列表中的项目吗?

例如。这是输入['this','is','a','sentence'],这是所需的输出this-is-a-sentence

sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
    sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
答案

使用join

>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
另一答案

将python列表转换为字符串的更通用的方法是:

>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join(map(str, my_lst))
>>> print(my_lst_str)
'12345678910'
另一答案

对初学者来说,了解why join is a string method 非常有用

一开始很奇怪,但在此之后非常有用。

join的结果总是一个字符串,但是要连接的对象可以是多种类型(生成器,列表,元组等)

.join更快,因为它只分配一次内存。比经典连接更好。 extended explanation

一旦你学会了它,它就会非常舒服,你可以做这样的技巧来添加括号。

  >>> ",".join("12345").join(("(",")"))
  '(1,2,3,4,5)'

  >>> lista=["(",")"]
  >>> ",".join("12345").join(lista)
  '(1,2,3,4,5)'
另一答案

虽然@Burhan Khalid's answer很好,但我认为这样可以理解:

from str import join

sentence = ['this','is','a','sentence']

join(sentence, "-") 

join()的第二个参数是可选的,默认为“”。

编辑:此功能已在Python 3中删除

另一答案

我们还可以使用python内置的reduce功能: -

来自functools import reduce

句子= ['this','是','a','句子']

out_str = str(reduce(lambda x,y:x +“ - ”+ y,sentence))

打印(out_str)

我希望这有帮助 :)

以上是关于将字符串"This is a Python book"中的多余空格删除,即如果有连续空格只保留一?的主要内容,如果未能解决你的问题,请参考以下文章

函数delspace的功能是删除一个字符串中所有的空格。例如,输入字符串为"This is a string",

What is "var self = this;"

grafana "this authentication plugin is not supported"

将列表中的项连接到字符串

Android Studio 之 Launch AVD 时" Intel HAXM is required to run this AVD, VT-x is disabled in BIOS

利用handler发送消息报:"This message is already in use"解决办法