如何解决如何找到多个列表之间的交集?
my_lists = [['Finish','Purpose','Form','Series','Tiles Type','Finishing'],['Color','Thickness','Usage/Application','Brand','Marble Type','Material'],'Finishing','Origin','Thickness'],['Thickness','Size','Material Grade',['Usage/Application','Material','Shape'],['Application Area','Color','Coverage Area'],'Form'],['Unit Size (mm X mm)','Usage','Brand'],['Marble Type','Unit Size (mm X mm)','Color'],['color'],'Finish','Marble Type'],'Unit Size (mm X mm)'],'Usage'],'Packaging Size','Packaging Type'],'Back Lit',['Material','Pattern',['Form','Application Area','Colour','Series'],'Surface Finish'],['Brand','Finish'],'Unit Size','Features',['Usage',['Finish','Pattern'],'Category Type'],'Surface Finishing','Stone Form','Size']]
print(set.intersection(*map(set,list(my_lists ))))
但我得到一个空集
set()
我真正想要的是在所有列表中找到共同的元素
解决方法
示例中的所有列表之间没有共同元素 - 您可以看到第一个和第二个列表完全不相交。因此,一个空集的正确返回答案。此操作只会查找 EACH 列表中的所有字符串。
编辑
如果您的目标是找到永远重复的字符串,我会执行以下操作:
import numpy as np
my_lists = [['Finish','Purpose','Form','Series','Tiles Type','Finishing'],['Color','Thickness','Usage/Application','Brand','Marble Type','Material'],'Finishing','Origin','Thickness'],['Thickness','Size','Material Grade',['Usage/Application','Material','Shape'],['Application Area','Color','Coverage Area'],'Form'],['Unit Size (mm X mm)','Usage','Brand'],['Marble Type','Unit Size (mm X mm)','Color'],['color'],'Finish','Marble Type'],'Unit Size (mm X mm)'],'Usage'],'Packaging Size','Packaging Type'],'Back Lit',['Material','Pattern',['Form','Application Area','Colour','Series'],'Surface Finish'],['Brand','Finish'],'Unit Size','Features',['Usage',['Finish','Pattern'],'Category Type'],'Surface Finishing','Stone Form','Size']]
big_list = [x for a_list in my_lists for x in a_list]
unique_strings,number_of_appearances = np.unique(big_list,return_counts=True)
index = np.flip(np.argsort(number_of_appearances))
print(unique_strings[index],number_of_appearances[index])
这会展平您的列表列表,找到唯一的字符串,并按它们出现的次数(最多到最少)对它们进行排序。第一个字符串将是“找到最多的元素”,任何计数超过 1 的字符串都会在多个列表中重复。
,我认为这会有所帮助;
from functools import reduce
reduce(numpy.intersect1d,(my_lists))
来源: https://numpy.org/doc/stable/reference/generated/numpy.intersect1d.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。