Python 拆分和连接字符串中的单词以删除单词之间的额外空格

Python 拆分和连接字符串中的单词以删除单词之间的额外空格,python,split,Python,Split,我对python相当陌生,所以我尝试将一个包含两个单词的字符串转换成一个字符串,可以是由1个或多个空格分隔的大小写混合体,就像我的示例中的变量名一样 香蕉分割法,每个单词的第一个字母用大写字母表示,其余字母用小写字母表示,除两个单词之间的一个字母外,其余空格均被删除。以下是我得到的: name = "banAna sPlit" name = name.lower() name = name.split() for i in name: i = i[0].upper

我对python相当陌生,所以我尝试将一个包含两个单词的字符串转换成一个字符串,可以是由1个或多个空格分隔的大小写混合体,就像我的示例中的变量名一样 香蕉分割法,每个单词的第一个字母用大写字母表示,其余字母用小写字母表示,除两个单词之间的一个字母外,其余空格均被删除。以下是我得到的:

name = "banAna   sPlit"
name = name.lower()
name = name.split()
for i in name: 
   i = i[0].upper() + i[1:] 

name = " ".join(i)

print(name)
为什么这只是第一个词?for循环不解决列表中包含banana和split的每个元素吗?如何解决此问题?

我接受元素的值,但赋值给我将重新赋值变量,而不是赋值给列表的值。相反,枚举列表以获得索引和值,然后将新值分配给具有索引的列表:

对于i,v的名称: 名称[i]=v[0]。上限+v[1:] name=.joinname 我接受元素的值,但赋值给我将重新赋值变量,而不是赋值给列表的值。相反,枚举列表以获得索引和值,然后将新值分配给具有索引的列表:

对于i,v的名称: 名称[i]=v[0]。上限+v[1:] name=.joinname 赋值给我并没有赋值给列表元素,它只是赋值给变量

使用列表理解创建带有修改的新列表

name = [i[0].upper() + i[1:] for i in name]
name = " ".join(name)
赋值给我并没有赋值给列表元素,它只是赋值给变量

使用列表理解创建带有修改的新列表

name = [i[0].upper() + i[1:] for i in name]
name = " ".join(name)

您可以创建一个包含您正在寻找的调整的新列表

name=bananasplit name=name.lower name=name.split 名称=[i[0]。上限+i[1:]表示名称中的i] name=.joinname 打印名
您可以创建一个包含您正在寻找的调整的新列表

name=bananasplit name=name.lower name=name.split 名称=[i[0]。上限+i[1:]表示名称中的i] name=.joinname 打印名 尝试使用标题功能

name = "banAna   sPlit"
name = name.lower()
name = name.split()

array = []
for i in name: 
    array.append(i.title())

name = " ".join(array)

print(name)
这也会删除单词之间的空白

尝试使用title函数

name = "banAna   sPlit"
name = name.lower()
name = name.split()

array = []
for i in name: 
    array.append(i.title())

name = " ".join(array)

print(name)

这也会删除单词之间的空白

这需要考虑两个以上的空间

name = "banAna   sPlit"
names = name.split(' ')
names = str([" ".join(filter(None,names))]).title()

print(names)

>>> ['Banana Split']

这需要考虑两个以上的空间

name = "banAna   sPlit"
names = name.split(' ')
names = str([" ".join(filter(None,names))]).title()

print(names)

>>> ['Banana Split']

如果你想用这个词,它会“寻址”每个元素。如果你的意思是它会更新每个元素,那么它不会。当你分配给i时,你只是分配给变量,而不是它从中获取值的列表元素。如果你想使用这个词,它会“寻址”每个元素。如果你的意思是它会更新每个元素,那么不,它不会。当你分配给i时,你只是分配给变量,而不是它从中获得值的列表元素。我不知道这个函数。谢谢如果在标题中有诸如连词之类的词不应该大写,那该怎么办?例如在美国,of的两个字母都保持小写。@d784我相信您可以在for循环中添加简单的if语句。告诉我你是否需要帮助!我不知道那个功能。谢谢如果在标题中有诸如连词之类的词不应该大写,那该怎么办?例如在美国,of的两个字母都保持小写。@d784我相信您可以在for循环中添加简单的if语句。告诉我你是否需要帮助!