如何在Python中按字母顺序对字符串中的字母进行排序

Sup*_*ero 138 python string

有没有一种简单的方法可以在Python中按字母顺序对字符串中的字母进行排序?

因此对于:

a = 'ZENOVW'
Run Code Online (Sandbox Code Playgroud)

我想回复:

'ENOVWZ'
Run Code Online (Sandbox Code Playgroud)

K Z*_*K Z 249

你可以做:

>>> a = 'ZENOVW'
>>> ''.join(sorted(a))
'ENOVWZ'
Run Code Online (Sandbox Code Playgroud)

  • 请注意,“''.join(sorted(a,reverse = True,key = str.lower))”可用于执行不区分大小写的反向排序。可能会很方便。 (2认同)

ask*_*han 84

>>> a = 'ZENOVW'
>>> b = sorted(a)
>>> print b
['E', 'N', 'O', 'V', 'W', 'Z']
Run Code Online (Sandbox Code Playgroud)

sorted返回一个列表,因此您可以使用join以下命令再次将其设为字符串:

>>> c = ''.join(b)
Run Code Online (Sandbox Code Playgroud)

它将每个项目之间b的空字符串连接在一起''.

>>> print c
'ENOVWZ'
Run Code Online (Sandbox Code Playgroud)


Rad*_*dek 29

Sorted()解决方案可以为您提供其他字符串的意外结果.

其他解决方案清单:

对字母进行排序并使它们不同:

>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower())))
' belou'
Run Code Online (Sandbox Code Playgroud)

对字母进行排序并使它们与保持上限不同:

>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s)))
' Bbelou'
Run Code Online (Sandbox Code Playgroud)

对字母进行排序并保留重复:

>>> s = "Bubble Bobble"
>>> ''.join(sorted(s))
' BBbbbbeellou'
Run Code Online (Sandbox Code Playgroud)

如果要删除结果中的空格,请在上述任何一种情况下添加strip()函数:

>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower()))).strip()
'belou'
Run Code Online (Sandbox Code Playgroud)


Saq*_*uib 9

你可以使用reduce

>>> a = 'ZENOVW'
>>> reduce(lambda x,y: x+y, sorted(a))
'ENOVWZ'
Run Code Online (Sandbox Code Playgroud)


Pri*_*ora 9

Python 函数sorted返回基于 ASCII 的字符串结果。

不正确:在下面的例子中,e并且d是落后HW由于它以ASCII值。

>>>a = "Hello World!"
>>>"".join(sorted(a))
' !!HWdellloor'
Run Code Online (Sandbox Code Playgroud)

正确:为了在改变字母大小写的情况下编写排序后的字符串。使用代码:

>>> a = "Hello World!"
>>> "".join(sorted(a,key=lambda x:x.lower()))
' !deHllloorW'
Run Code Online (Sandbox Code Playgroud)

如果要删除所有标点符号和数字。使用代码:

>>> a = "Hello World!"
>>> "".join(filter(lambda x:x.isalpha(), sorted(a,key=lambda x:x.lower())))
'deHllloorW'
Run Code Online (Sandbox Code Playgroud)