从多维列表中删除重复项(python)
我正在尝试从多维列表中删除重复项。我的目标是删除列表中相同的项目 例如:清单2、清单6和清单7包含了宾利汽车。我想把那辆车从两个名单中删除 我如何做到这一点 下面的代码仅在传入包含重复条目的单个列表时有效,但需要对多维列表进行重复数据消除从多维列表中删除重复项(python),python,python-3.x,list,Python,Python 3.x,List,我正在尝试从多维列表中删除重复项。我的目标是删除列表中相同的项目 例如:清单2、清单6和清单7包含了宾利汽车。我想把那辆车从两个名单中删除 我如何做到这一点 下面的代码仅在传入包含重复条目的单个列表时有效,但需要对多维列表进行重复数据消除 cars = [ ["Acura", "Alfa Romeo", "Aston Martin", "Audi", "Aston Martin"], ["Bentley", "BMW", "Bugatti", "Buick"], [
cars = [
["Acura", "Alfa Romeo", "Aston Martin", "Audi", "Aston Martin"],
["Bentley", "BMW", "Bugatti", "Buick"],
["Cadillac", "Chrysler", "Citroen"],
["Dodge", "Ferrari", "Fiat", "Ford"],
["Geely", "Honda", "Hyundai", "Infiniti"],
["Alfa Romeo", "Bentley", "Hyundai", "Lamborghini"],
["Koenigsegg", "Bentley", "Maserati", "Lamborghini"]
]
def remove(duplicate):
final_list = []
for num in duplicate:
if num not in final_list:
final_list.append(num)
return final_list
print (remove(cars))
returns:
[
['Acura', 'Alfa Romeo', 'Aston Martin', 'Audi','Aston Martin']
['Bentley', 'BMW', 'Bugatti', 'Buick'],
['Cadillac', 'Chrysler', 'Citroen'],
['Dodge', 'Ferrari', 'Fiat', 'Ford'],
['Geely', 'Honda', 'Hyundai', 'Infiniti'],
['Alfa Romeo', 'Bentley', 'Hyundai', 'Lamborghini'
['Koenigsegg', 'Bentley', 'Maserati', 'Lamborghini']
]
重复数据消除后的预期输出如下所示。此多维列表中没有包含重复项的列表
[
['Acura', 'Alfa Romeo', 'Aston Martin', 'Audi']
['Bentley', 'BMW', 'Bugatti', 'Buick'],
['Cadillac', 'Chrysler', 'Citroen'],
['Dodge', 'Ferrari', 'Fiat', 'Ford'],
['Geely', 'Honda', 'Hyundai', 'Infiniti'],
['Bentley', 'Hyundai', 'Lamborghini'
['Koenigsegg', 'Maserati']
]
您可以这样做:
def remove(duplicate):
final_list = []
found = set([])
for num in duplicate:
lst = []
for element in num:
if element not in found:
found.add(element)
lst.append(element)
final_list.append(lst)
return final_list
输出
[
['Acura', 'Alfa Romeo', 'Aston Martin', 'Audi'],
['Bentley', 'BMW', 'Bugatti', 'Buick'],
['Cadillac', 'Chrysler', 'Citroen'],
['Dodge', 'Ferrari', 'Fiat', 'Ford'],
['Geely', 'Honda', 'Hyundai', 'Infiniti'],
['Lamborghini'],
['Koenigsegg', 'Maserati']
]
您可以这样做:
def remove(duplicate):
final_list = []
found = set([])
for num in duplicate:
lst = []
for element in num:
if element not in found:
found.add(element)
lst.append(element)
final_list.append(lst)
return final_list
输出
[
['Acura', 'Alfa Romeo', 'Aston Martin', 'Audi'],
['Bentley', 'BMW', 'Bugatti', 'Buick'],
['Cadillac', 'Chrysler', 'Citroen'],
['Dodge', 'Ferrari', 'Fiat', 'Ford'],
['Geely', 'Honda', 'Hyundai', 'Infiniti'],
['Lamborghini'],
['Koenigsegg', 'Maserati']
]
您可以使用备忘来达到这样的目的。将每个元素第一次出现的存储在一个列表中,比如说列表F。如果一个元素不在F中,那么它是唯一的。将唯一元素存储在F中,然后重复此过程。您可以使用记忆功能来实现此目的。将每个元素第一次出现的存储在一个列表中,比如说列表F。如果一个元素不在F中,那么它是唯一的。将唯一元素存储在F中,然后重复此过程。要删除哪一个?您是否同意将输出作为单个列表?修复缩进。现在,如果没有语法错误,您的代码无法粘贴到编辑器中并执行。请将想要的输出修复并添加想要的输出。要删除哪一个?您是否同意将输出作为单个列表?修复缩进。现在,如果没有语法错误,你的代码就无法粘贴到编辑器中并执行。然后发布想要的输出,修复并添加想要的输出。这正是我所需要的。谢谢你的快速回复!!这正是我所需要的。谢谢你的快速回复!!