gpt4 book ai didi

python - 删除嵌套列表中的重复项(不删除子列表中的重复元素)

转载 作者:行者123 更新时间:2023-11-30 22:30:13 25 4
gpt4 key购买 nike

我正在尝试从如下所示的嵌套列表中删除重复的子列表:

result_set = [
['MEMS', 'MEMS', 'MEMS', 'MEMS'],
['Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics'],
['Microfabrication', 'Microfabrication', 'Microfabrication', 'Clean-Room Microfabrication', 'Microfabrication', 'Microfabrication'],
['Photolithography', 'Photolithography', 'Lithography', 'Photolithography'],
['MEMS', 'MEMS', 'MEMS', 'MEMS']
]

我想要的输出如下:

result_set = [
['MEMS', 'MEMS', 'MEMS', 'MEMS'],
['Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics'],
['Microfabrication', 'Microfabrication', 'Microfabrication', 'Clean-Room Microfabrication', 'Microfabrication', 'Microfabrication'],
['Photolithography', 'Photolithography', 'Lithography', 'Photolithography']
]

请注意,基本上最后一个元素 ['MEMS'、'MEMS'、'MEMS'、'MEMS'] 不再存在。 Similar questions已被询问,我从那里改编了以下代码:

result_set = set(frozenset(x) for x in result)
lst = [list(x) for x in result_set]

我的问题是我得到以下输出:

 result_set = [['MEMS'], ['Microfluidics'], ['Microfabrication', 'Clean-Room Microfabrication'], ['Photolithography', 'Lithography']]

请注意,它还会删除子列表中的重复元素。我不想要这个,因为我之后的目标是绘制直方图。举例来说 -> MEMS 有 4 次出现。因此,我想跟踪每个子列表最初拥有的元素数量。

最佳答案

如果顺序不重要,您可以使用集合:

final_data = list(map(list, set(map(tuple, result_set))))

输出:

[['Microfabrication', 'Microfabrication', 'Microfabrication', 'Clean-Room Microfabrication', 'Microfabrication', 'Microfabrication'], ['Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics'], ['Photolithography', 'Photolithography', 'Lithography', 'Photolithography'], ['MEMS', 'MEMS', 'MEMS', 'MEMS']]

如果顺序很重要,您可以尝试以下操作:

final_data = []
for result in result_set:
if result not in final_data:
final_data.append(result)

输出:

[['MEMS', 'MEMS', 'MEMS', 'MEMS'], ['Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics', 'Microfluidics'], ['Microfabrication', 'Microfabrication', 'Microfabrication', 'Clean-Room Microfabrication', 'Microfabrication', 'Microfabrication'], ['Photolithography', 'Photolithography', 'Lithography', 'Photolithography']]

关于python - 删除嵌套列表中的重复项(不删除子列表中的重复元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com