some_list = ['bad', 'app', 'sad', 'mad', 'dab','pge', 'bda', 'ppa', 'das', 'dba']
new_list = []
from collections import OrderedDict
for ele in OrderedDict.fromkeys("".join(sorted(ele)) for ele in some_list):
temp = []
for s in some_list:
if ele == ''.join(sorted(s)):
temp.append(s)
if len(temp) > 1:
new_list.append(temp)
for i in new_list:
i.sort()
print(i)
输出为:
['bad', 'bda', 'dab', 'dba']
['app', 'ppa']
['das', 'sad']
我希望输出为:
['app', 'ppa']
['bad', 'bda', 'dab', 'dba']
['das', 'sad']
如何更改代码以获得正确的输出?
python大神给出的解决方案
使用new_list
在打印之前对sorted
进行排序
for i in sorted(new_list):
i.sort()
print(i)
这将按预期打印输出