📌  相关文章
📜  Python|从列表中删除无序的重复元素

📅  最后修改于: 2022-05-13 01:54:34.770000             🧑  作者: Mango

Python|从列表中删除无序的重复元素

给定一个列表,任务是删除重复的元素。所有顺序不同但由相同字符/数字组成的元素都被视为重复元素。

例子:

Input : ['gfg', 'ggf', 'fgg', 'for', 'orf',
                'ofr', 'rfo', 'rof', 'fro']
Output : ['for', 'fgg']

Input:  ['110', '101', '001', '010', '100']
Output:  ['001', '011']


方法#1:使用集合

# Python code to remove duplicate 
# unordered elements from a list
from collections import Counter
  
# List initialisation
Input = ['1213','1231','1123','1132','2113',
         '2311','0007', '0016', '0025', '0034',
         '0043', '0052', '0061', '0070','0304',
         '0313', '0322','0098','9800', '0331',
         '0340', '0403', '0412', '0421', '0430',
         '0502','8900','8009' ,'0511', '0520',
         '0601', '0610', '0700', '1006', '1015']
  
# Set initialisation
s = set()
  
# Output list initialisation
output =[]
  
for i in Input:
    if tuple(Counter(sorted(i, key = int)).items()) in s:
        pass
          
    else:
        s.add(tuple(Counter(sorted(i, key = int)).items()))
        output.append(i)
  
# Printing output
print(output)
输出:
['1213', '0007', '0016', '0025', '0034', 
 '0313', '0322', '0098', '0412', '0511']


方法#2:

# Python code to remove duplicate
# unordered elements from a list
# List initialisation
Input = ['gfg', 'ggf', 'fgg', 'for', 'orf',
                'ofr', 'rfo', 'rof', 'fro']
  
# Getting unique nos
Output = list({''.join(sorted(n)) for n in Input})
  
# Printing Output
print(Output)
输出:
['for', 'fgg']