s = ['4', 'poke', 'aaagmnrs', 'pkoe', 'okpe', 'ekop', 'anagrams']
final_list = []
for i in range(0, len(s)):
for j in range(i+1, len(s)):
if sorted(s[i]) == sorted(s[j]):
if s[i] not in final_list:
final_list.append(s[i])
print(final_list)
我得到此输出
['poke', 'aaagmnrs', 'pkoe', 'okpe']
我需要此输出
['poke', 'aaagmnrs']
如果列表中有多个项目是列表中较早项目的拼写形式,那么我基本上只需要第一次出现。例如,“ poke”出现在“ pkoe”,“ okpe”和“ ekop”之前,我只需要在输出列表中使用“ poke”。与“ aaagmnrs”相同。由于“ aaagmnrs”出现在“ anagrams”之前,因此我只需要在输出中使用“ aaagmnrs”。
感谢任何输入!
考虑保留找到的七巧板的排序版本的列表,然后检查排序后的字符串列表是否包含排序后的字符串。在必要时将列表添加到列表中之后,当您在列表中找到匹配的项目时,也可以打破内循环:
s = ['4', 'poke', 'aaagmnrs', 'pkoe', 'okpe', 'ekop', 'anagrams']
final_list = []
final_list_sorted = []
for i in range(0, len(s)):
sortedi = sorted(s[i])
for j in range(i+1, len(s)):
if sortedi == sorted(s[j]):
if sortedi not in final_list_sorted:
final_list.append(s[i])
final_list_sorted.append(sortedi)
break
print(final_list)
['poke', 'aaagmnrs']