10
x = 'yellow'
print(sorted(x))

返回

['e', 'l', 'l', 'o', 'w', 'y']

我希望它返回什么

埃洛维

'ellowy'如果字母不在列表中,我是如何让它返回的?

4

4 回答 4

16

实际上sorted(),当用于字符串时,总是返回单个字符的列表。所以你应该使用str.join()从该列表中创建一个字符串。

>>> x = 'yellow'
>>> ''.join(sorted(x))
'ellowy'
于 2012-07-12T18:54:40.150 回答
11

字符串的join()方法将其参数的每个元素与给定字符串对象的副本连接起来,作为每个项目之间的分隔符。许多人发现这是一种奇怪且违反直觉的做事方式,但是通过将元素与空字符串连接起来,您可以将字符串列表转换为单个字符串:

x = 'yellow' 
print(''.join(sorted(x)))
于 2012-07-12T18:54:27.133 回答
9
x = 'yellow' 
print(''.join(sorted(x)))
于 2012-07-12T18:54:24.573 回答
4

如果您想让 Guido讨厌您,请尝试:

reduce(lambda l,r: l+r, sorted(x))

;-)

在 python 3 中,您需要从 functools 包中导入它

于 2012-07-12T19:00:05.417 回答