我知道有sort()函数,但这对我不起作用。我想按字母顺序排序如下字符串:
'S NOM V NOUN VERB'
应该是:
'NOM NOUN S VERB V'
如何在python中实现这一目标?
编辑:
我试过了:
''.join(sorted(m[i][j]))
但是这返回了非常改变的输出,例如ABEILMNNNNOOPRSUVV
,这是没有意义的。
答案 0 :(得分:3)
你已经至少有一个好的答案。你也可以把它抽象成一个函数:
def sortWords(s, delim = ' '):
return delim.join(sorted(s.split(delim)))
例如,
>>> sortWords('S NOM V NOUN VERB')
'NOM NOUN S V VERB'
答案 1 :(得分:1)
尝试以下方法:
x = 'S NOM V NOUN VERB'
x = x.split() # produces ['S', 'NOM', 'V', 'NOUN', 'VERB']
x = sorted(x) # produces ['NOM', 'NOUN', 'S', 'V', 'VERB']
x = ' '.join(x) # produces 'NOM NOUN S V VERB'
如果您想要反转V和VERB的顺序,则必须使用自定义排序功能(请参阅sorted
功能的'键'关键字。
答案 2 :(得分:-1)
您应该将字符串拆分为列表,然后对其进行排序并将其转换回字符串。这是一个例子。
old_string = "hello world abc"
string_list = old_string.split(" ") # split the string by a space, you can choose something different.
new_string = " ".join(string_list.sort()) # join list by a space.
print(new_string)