从数组字符串中删除重复项

时间:2019-09-09 08:20:01

标签: python

问这个问题确实很幼稚,但确实想要一个最佳的解决方案。 我有一个字符串数组

("a1,a2", "a3,a4", "a2,a1", "a5,a3")

我想显示

("a1,a2", "a3,a4", "a5,a3")

即第一个字符串在其中,其重复项被省略。

注意:元素的顺序必须保留

2 个答案:

答案 0 :(得分:3)

这是一种方法。

例如:

data =  ("a1,a2","a3,a4","a2,a1","a5,a3") 
seen = set()
result = []
for i in data:
    if ",".join(sorted(i.split(","))) not in seen:
        result.append(i)
        seen.add(i) 
print(result)

输出:

['a1,a2', 'a3,a4', 'a5,a3']

答案 1 :(得分:0)

您的数据位于名为“ data”的变量中。

new_data = []
for example in data:
    example2 = str(example.split(",")[1] + "," + example.split(",")[0])
    if example in new_data or example2 in new_data:
        continue 
    else:
        new_data.append(example) 
print(new_data) 

如果要将它们存储在原始列表中,请运行此脚本。

data.clear()
data = new_data.copy()