Skip to main content
 首页 » 编程设计

python之For 循环之在单词列表中按字母顺序对每个字符进行排序

2025年05月04日14zhenyulu

我有一个单词列表,我想按列表中的字符排序:

['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。