在Python中从列表中删除重复的子字符串

有时我们可能需要通过消除列表中的重复元素来优化列表。这可以通过结合使用python标准库中可用的各种方法来实现。

设置并拆分

split方法可用于隔离元素以进行重复检查,而set方法可用于存储来自隔离列表元素的唯一元素。

示例

# initializing list
listA = [ 'xy-xy', 'pq-qr', 'xp-xp-xp', 'dd-ee']

print("Given list : ",listA)

# using set() and split()res = [set(sub.split('-')) for sub in listA]

# Result
print("List after duplicate removal : " ,res)

输出结果

运行上面的代码给我们以下结果-

Given list : ['xy-xy', 'pq-qr', 'xp-xp-xp', 'dd-ee']
List after duplicate removal : [{'xy'}, {'pq', 'qr'}, {'xp'}, {'ee', 'dd'}]

有列表

我们还可以使用list方法,并与之一起使用for循环,以便仅捕获分离后列表中的唯一元素。

示例

# initializing list
listA = [ 'xy-xy', 'pq-qr', 'xp-xp-xp', 'dd-ee']

print("Given list : ",listA)

# using list
res = list({i for sub in listA for i in sub.split('-')})

# Result
print("List after duplicate removal : " , res)

输出结果

运行上面的代码给我们以下结果-

Given list : ['xy-xy', 'pq-qr', 'xp-xp-xp', 'dd-ee']
List after duplicate removal : ['dd', 'pq', 'ee', 'xp', 'xy', 'qr']