有没有一种简单的方法可以在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)
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)
你可以使用reduce
>>> a = 'ZENOVW'
>>> reduce(lambda x,y: x+y, sorted(a))
'ENOVWZ'
Run Code Online (Sandbox Code Playgroud)
Python 函数sorted返回基于 ASCII 的字符串结果。
不正确:在下面的例子中,e并且d是落后H和W由于它以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)
| 归档时间: |
|
| 查看次数: |
294234 次 |
| 最近记录: |