我有一个单词列表,我想按列表中的字符排序:
['alumni', 'orphan', 'binge', 'peanut', 'necktie']
Run Code Online (Sandbox Code Playgroud)
我想按字母顺序对它们进行排序,以便它们最终成为以下列表:
['ailmnu', 'ahnopr', 'begin', 'aenptu', 'ceeiknt']
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码一直令人尴尬:
for i in range(len(splitfoo)):
splitedfootmp = sorted(splitfoo[i])
Run Code Online (Sandbox Code Playgroud)
将单词分成如下字符:['a', 'i', 'l', 'm', 'n', 'u']
但我无法弄清楚如何将其转换回来['ailmnu']
有没有办法在没有经历所有麻烦的情况下做到这一点?提前致谢!
做好你的整个事情:
items = ['alumni', 'orphan', 'binge', 'peanut', 'necktie']
sorted_items = ["".join(sorted(item)) for item in items]
Run Code Online (Sandbox Code Playgroud)
在这里,我使用列表理解,这是一个很好的方式来制作这样的小片段.如果需要,您可以将其扩展为:
items = ['alumni', 'orphan', 'binge', 'peanut', 'necktie']
sorted_items = []
for item in items:
sorted_items.append("".join(sorted(item)))
Run Code Online (Sandbox Code Playgroud)
但显然,map()在这种情况下,列表理解更好(并且比上述或使用更快)解决方案.
同样值得注意的是,使用这样的for循环并不是非常pythonic.相比:
for i in range(len(splitfoo)):
splitedfootmp = sorted(splitfoo[i])
for item in splitfoo:
splitedfootmp = sorted(item)
Run Code Online (Sandbox Code Playgroud)
他们都做同样的事情,但后者更清晰和pythonic.
| 归档时间: |
|
| 查看次数: |
2519 次 |
| 最近记录: |