我有一个单词列表,我想按列表中的字符排序:
['alumni', 'orphan', 'binge', 'peanut', 'necktie']
我想按字母顺序对这些进行排序,以便它们最终成为以下列表:
['ailmnu', 'ahnopr', 'begin', 'aenptu', 'ceeiknt']
到目前为止我的代码一直很尴尬:
for i in range(len(splitfoo)):
splitedfootmp = sorted(splitfoo[i])
将单词拆分为这样的字符:['a', 'i', 'l', 'm', 'n', 'u'] 但我不知道如何将它变回 ['ailmnu']
有没有办法做到这一点而无需经历所有的麻烦? 提前致谢!
请您参考如下方法:
把你的整个事情做好:
items = ['alumni', 'orphan', 'binge', 'peanut', 'necktie']
sorted_items = ["".join(sorted(item)) for item in items]
我在这里使用 list comprehension ,这是制作这样的小片段的好方法。如果需要,您可以将其扩展为:
items = ['alumni', 'orphan', 'binge', 'peanut', 'necktie']
sorted_items = []
for item in items:
sorted_items.append("".join(sorted(item)))
但很明显,在这种情况下,列表理解是一种更好(比上面的或使用 map())解决方案更快的解决方案。
还值得注意的是,使用这样的 for 循环并不是很 pythonic。比较:
for i in range(len(splitfoo)):
splitedfootmp = sorted(splitfoo[i])
for item in splitfoo:
splitedfootmp = sorted(item)
他们都做同样的事情,但后者更清晰和pythonic。
