草庐IT

python - 两个列表的交集,在第一个列表中保留重复项

我有两个平面列表,其中一个包含重复值。例如,array1=[1,4,4,7,10,10,10,15,16,17,18,20]array2=[4,6,7,8,9,10]我需要找到array1中也存在于array2中的值,将重复项保留在array1中。期望的结果将是result=[4,4,7,10,10,10]我想避免循环,因为实际数组将包含数百万个值。我尝试了各种集合和相交组合,但就是无法保留重复项.. 最佳答案 您不想使用循环是什么意思?您将不得不以一种或另一种方式对其进行迭代。只需单独接收每个项目并检查它是否在array2中:it

python - 在 python 中获取 N-many 列表的交集

在python中获取N-many列表的交集的最简单方法是什么?如果我有两个列表a和b,我知道我可以这样做:a=set(a)b=set(b)intersect=a.intersection(b)但我想对任意一组列表执行类似a&b&c&d&...的操作(理想情况下无需先转换为一组,但如果这是最简单/最有效的方法,我可以处理那个。)即我想编写一个函数intersect(*args)来有效地处理任意多个集合。最简单的方法是什么?编辑:我自己的解决方案是reduce(set.intersection,[a,b,c])——这样好吗?谢谢。 最佳答案

Python 对元组列表的列表交集求和的最简单方法

假设我有以下两个元组列表myList=[(1,7),(3,3),(5,9)]otherList=[(2,4),(3,5),(5,2),(7,8)]returns=>[(1,7),(2,4),(3,8),(5,11),(7,8)]我想设计一个合并操作,通过检查元组第一个元素上的任何交集来合并这两个列表,如果有交集,则添加每个有问题的元组的第二个元素(合并两个)。操作后我想根据第一个元素进行排序。我也发布了这个,因为我认为这是一个非常普遍的问题,有一个明显的解决方案,但我觉得这个问题可能有非常pythonic的解决方案;) 最佳答案 对

python - 如何获得两个数据框的交集?

我有两个格式相似的数据框:df1=DataFrame({'a':[0,1,2,3,4],'b':['q','r','s','t','u']})df1ab00q11r22s33t44udf2=DataFrame({'a':[4,3,2,1,999],'b':['u','r','s','t','u']})df2ab04u13r22s31t4999u我想获得一个新的数据框,其中的行同时出现在这两个数据中(忽略索引)。所以上面的例子给出了一个dataframeab04u12s我如何得到这个路口? 最佳答案 你可以只执行merge,这将使用所

python - 获取集合列表的交集

我希望python获取集合列表的交集。例如,我有一个函数返回s以下集合列表:[set(0,1,3),set(1,3)]如您所见,它的交集是集合{1,3}。我怎样才能让python获得交集?到目前为止我一直在做的是遍历列表。但是我看不到路口。解决方案应该能够处理n个元素的集合列表,而不仅仅是一对。有什么想法吗?欢迎理解顺便说一句,为什么集合呈现为set([]),换句话说,为什么不只是用大括号? 最佳答案 使用set.intersection:>>>lis=[set((0,1,3)),set((1,3))]>>>set.intersec

Python:球体的交集

我对编程非常陌生,但我决定从事一个有趣的项目,因为我最近学习了如何以参数形式表示球体。当三个球体相交时,有两个相交点是不同的,除非它们仅在一个奇点处重叠。球体的参数表示:我的代码是根据Python/matplotlib:plottinga3dcube,asphereandavector?的答案修改的,添加了指定x、y和z原点以及球体半径的功能。许多类似的问题是用C++、Java和C#编写的,我根本看不懂(我几乎不知道我在做什么所以放轻松)。我的代码:importnumpyasnpdefmake_sphere_x(x,radius):u,v=np.mgrid[0:2*np.pi:5000

python - 两条线串的交集 Geopandas

假设我有以下线串的GeoDataFrames,其中一个代表道路,另一个代表等高线。>>>importgeopandasasgpd>>>importgeopandas.tools>>>importshapely>>>fromshapely.geometryimport*>>>>>>r1=LineString([(-1,2),(3,2.5)])>>>r2=LineString([(-1,4),(3,0)])>>>Roads=gpd.GeoDataFrame(['MainSt','SpruceSt'],geometry=[r1,r2],columns=['Name'])>>>RoadsNam

python - 基于键的两个字典列表的交集

我有两个不同的字典列表,list1=[{'count':351,'att_value':'one'},{'count':332,'att_value':'two'},{'count':336,'att_value':'six'},{'count':359,'att_value':'nine'},{'count':304,'att_value':'four'}]list2=[{'count':359,'person_id':4},{'count':351,'person_id':12},{'count':381,'person_id':8}]如何通过像list_C一样包含其余键来基于“c

Python 列表与非唯一项的交集

我有两个字符串,我希望它们有交集包括重复项:str_a="aabbcc"str_b="aabd"list(set(str_a)&set(str_b))>>"ab"我想让它返回:>>"aab"有什么想法吗? 最佳答案 Multisets在python2.7或更高版本中作为(可变的)Counter对象实现。您可以执行许多与集合相同的操作,例如并集、交集、差集(尽管计数可能变为负数)等:fromcollectionsimportCounterasmset解决方法:(mset("aabbcc")&mset("aabd")).elements

python - Python 中的成对集交集

如果我有可变数量的集合(我们称其为n),每个集合最多有m个元素,计算成对的最有效方法是什么所有对集合的交点?请注意,这与所有n集的交集不同。例如,如果我有以下集合:A={"a","b","c"}B={"c","d","e"}C={"a","c","e"}我希望能够找到:intersect_AB={"c"}intersect_BC={"c","e"}intersect_AC={"a","c"}另一种可接受的格式(如果它使事情更容易)是给定集合中的项目到包含相同项目的集合的映射。例如:intersections_C={"a":{"A","C"},"c":{"A","B","C"}"e":{