【python – 查找两个嵌套列表的交集?】教程文章相关的互联网学习教程文章

python – 按键/值对的两个字典列表的交集【代码】

我有两种格式的字典列表:systolic_sex = [{'attribute': u'bp', 'value_d': 133.0, 'value_s': u'133', 'sid': 6}, {'attribute': u'bp', 'value_d': 127.0, 'value_s': u'127', 'sid': 17}, {'attribute': u'bp', 'value_d': 121.0, 'value_s': u'121', 'sid': 18}, {'attribute': u'bp', 'value_d': 127.0, 'value_s': u'127', 'sid': 27}, {'attribute': u'bp', 'value_d': 120.0, 'value_s': u'120', 'sid': 42},{'attribute'...

查找列表交集中元素数量的快速方法(Python)【代码】

有没有更快的方法在Python中计算这个值:len([x for x in my_list if x in other_list])我尝试使用集合,因为列表的元素是唯一的,但我注意到没有区别.len(set(my_list).intersection(set(other_list)))我正在处理大型名单,所以即使是最轻微的改进也很重要.谢谢解决方法:简单的方法是找到最小长度列表…而不是使用set.intersection …,例如:a = range(100) b = range(50)fst, snd = (a, b) if len(a) < len(b) else (b, a) len(set(...

python – 两个列表的交集,包括重复?【代码】

>>> a = [1,1,1,2,3,4,4] >>> b = [1,1,2,3,3,3,4][1,1,2,3,4]请注意这不是同一个问题:Python intersection of two lists keeping duplicates因为即使列表a中有三个1,列表b中也只有两个,因此结果应该只有两个.解决方法:您可以使用collections.Counter,这将提供在您乘坐交叉路口时每个元素的任一列表中找到的最低计数.from collections import Counterc = list((Counter(a) & Counter(b)).elements())输出:[1, 1, 2, 3, 4]

如何检查两个字符串是否在python中有交集?【代码】

例如,a =“abcdefg”,b =“krtol”,它们没有交集,c =“hflsfjg”,则a和c有交集.检查这个最简单的方法是什么?只需要一个真或假的结果解决方法: def hasIntersection(a, b):return not set(a).isdisjoint(b)

Python中的3D几何拓扑(例如交集)【代码】

我正在使用GEOS(in Python/Django)来操纵一些3d元素.所有拓扑操作都在2D中完美运行.因此,我创建了一个带有3D多边形的简单MultiPolygon(实际上非??常简单,它只是一个垂直平面的集合),还有一个也是3D的LineString.现在我只想要那些(我相信这将是一个3D点列表)的交集:>>> l = LineString([0, 0, 0], [1, 1, 1]) >>> p = Polygon([[1, 0, 0], [0, 1, 0], [0, 1, 1000], [1, 0, 1000], [1, 0, 0]]) >>> p.intersects(l) False好吧,geos...

python – 不仅是多个集合的交集,还有union和update【代码】

我试图在python中找到两组之间的交集.但是,一旦找到,我需要将两个集合并在字典上再次迭代,直到没有进一步的变化. 这样的事情:dict_={'a': {1,3,4}, 'b': {0,5,4}, 'c': {0,6,5},'e':{7,9}}我需要的:result={'abc':{1,3,4,0,5,4,0,6,5}, 'e':{7,9}}这是我到目前为止做了什么:dict_={'a': {1,3,4}, 'b': {0,5,4}, 'c': {0,6,5},'e':{7,9}} flag=True while flag:done=Falsefor key in list(dict_):if done: ## to brea...

python – 根据一列中的公共值创建两个或多个2d numpy数组的交集【代码】

我有3个numpy recarray具有以下结构.第一列是某个位置(整数),第二列是分数(Float). 输入:a = [[1, 5.41],[2, 5.42],[3, 12.32],dtype=[('position', '<i4'), ('score', '<f4')])]b = [[3, 8.41],[6, 7.42],[4, 6.32],dtype=[('position', '<i4'), ('score', '<f4')])]c = [[3, 7.41],[7, 6.42],[1, 5.32],dtype=[('position', '<i4'), ('score', '<f4')])]所有3个数组都包含相同数量的元素.我正在寻找一种基于位置列将这三个2d数组...

python设置与对象集的交集【代码】

我正在与亚马逊博托合作,我有2个名单.列表1包含实例对象.列表2包含InstanceInfo对象.两个对象都有一个名为id的属性.我需要获取InstanceInfo列表中存在id的Instance对象列表.l1 = [Instance:i-04072534, Instance:i-06072536, Instance:i-08072538, Instance:i-0a07253a, Instance:i-e68fa1d6, Instance:i-e88fa1d8, Instance:i-ea8fa1da, Instance:i-ec8fa1dc]l2 = [InstanceInfo:i-ec8fa1dc, InstanceInfo:i-ea8fa1da, InstanceIn...

Python3.7.1学习(三)求两个list的差集、并集与交集【代码】

在python3.7.1对列表的处理中,会经常使用到Python求两个list的差集、交集与并集的方法。 下面就以实例形式对此加以分析。 # 求两个list的差集、并集与交集# 一.两个list差集## 如有下面两个数组:a = [1, 2, 3]b = [2, 3]# 想要的结果是[1]## 下面记录一下三种实现方式:## 1. 正常的方式# ret = []# for i in a:# if i not in b:# ret.append(i)## print(ret)# 2.简化版# ret = [i for i in a if i not in b]# print...

Python:列表中的完整字符串与部分字符串的交集【代码】

假设我有一个字符串和一个字符串列表:a = 'ABCDEFG'b = ['ABC', 'QRS', 'AHQ']如何拉出列表b中与字符串a的一部分完美匹配的字符串?所以返回会像[‘ABC’] 最重要的问题是我有数千万字符串,因此时间效率至关重要.解决方法:如果你只想要b中的第一场比赛:next((s for s in b if s in a), None)一旦找到匹配,这就具有短路的优势,而其他列表解决方案将继续进行.如果未找到匹配项,则返回None.

python – 计算集合列表中所有组合的交集【代码】

我有一组集合.我想找到每个组合组合中仅在交叉点中找到的项目数.我基本上想做与在维恩图中创建数字相同的事情. 一个基本的例子可能会让它更清晰.a = set(1,2,5,10,12) b = set(1,2,6,9,12,15) c = set(1,2,7,8,15)我最终应该只找到以下项目: > a> b> c> a和b的交集> a和c的交集> b和c的交点> a,b和c的交集 这是一种不可扩展的方法num_a = len(a - b - c) # len(set([5,10])) -> 2 num_b = len(b - a - c) # len(set([6,9])) -> ...

python – 文本文件之间的交集【代码】

如何根据原始文本计算两个文本文件之间的交集?解决方案是使用shell命令还是用Python,Elisp或其他常用脚本语言表达并不重要. 我知道comm和grep -Fxv -f file1 file2.两者都假设我对线的交叉感兴趣,而我对字符的交集感兴趣(在计算匹配所需的字符数上最少). 奖励点为效率. 例 如果文件1包含foo bar baz-fee和文件2包含fee foo bar-faa那我想看看 > foo吧>费用 假设最小匹配长度为3.解决方法:您正在寻找Python的difflib模块(在标准库中...

Python:测试空集交集而不创建新集【代码】

我经常发现自己想要在不使用交叉点的结果的情况下测试两组的交集.set1 = set([1,2]) set2 = set([2,3]) if(set1 & set2):print("Non-empty intersection") else:print("Empty intersection")问题是创建了一个新的集合来执行此测试,这可能效率低下. 有没有明确写出来的简短方法(如下所示)?if(any(x in set2 for x in set1)):print("Non-empty intersection") else:print("Empty intersection")解决方法:您正在寻找set.isdisjoint()...

Python在列表的交集中维护顺序【代码】

我有一个列表A和列表B,我想从两个列表中获取常用元素,但是当我得到公共元素时,他们应该维护列表A的顺序. 首先,我开始将它们转换为设置和占用交叉点,但是存在维护顺序的问题.common = list(set(A).intersection(set(B)))所以我决定做列表理解:common = [i for i in A if i in B]我正进入(状态IndexError: too many indices for array解决方法:作为此类问题的一般答案您可以使用带有lambda x的排序函数:A.index(x)作为其键,它将根据...

python – 查找具有给定间隔的非空交集的间隔【代码】

问题如下:我有一个列表区间,由表格的元组组成(开始,结束)[start< = end].每个元组表示(实线的)间隔.我们假设间隔中的间隔彼此不重叠.给定一个新的间隔(s,e),我想写一个Python函数,它检查(s,e)是否重叠间隔中的任何间隔.如果(s,e)具有间隔中至少一个间隔的非空交集,则该函数应在列表间隔中返回这些间隔的索引. 假设该函数名为find_intersections.然后,假设间隔= [(1,3.5),(5.5,8.7),(10.2,22.6),(22.7,23.1)],预期输出将是: > fin...