Python 交叉口数量表

Python 交叉口数量表,python,list,Python,List,我有两张名单 # x x x <-- intersection c=[[1,2], [2,3]] b=[[1,2], [2,0]] 这个解决方案只是对列表进行压缩,这将导致忽略内部或外部列表中的任何多余元素,正如示例数据应该说明的那样 def intersection(b, c): count = [] for l1, l2 in zip(b, c): n_same = sum([1 for x1, x2 in zip(l1, l2) if

我有两张名单

#   x x    x    <-- intersection
c=[[1,2], [2,3]]
b=[[1,2], [2,0]]

这个解决方案只是对列表进行压缩,这将导致忽略内部或外部列表中的任何多余元素,正如示例数据应该说明的那样

def intersection(b, c):
    count = []
    for l1, l2 in zip(b, c):
        n_same = sum([1 for x1, x2 in zip(l1, l2) if x1 == x2])
        count.append(n_same)        
    return count

# or as a one-liner
intersection = lambda b, c: [sum([1 for x1, x2 in zip(l1, l2) if x1 == x2]) for l1, l2 in zip(b, c)]

#     x  x    x                          x     x       x   <-- intersection found
c = [[1, 2], [2, 3], [3, 0], [6, 7, 8], [8, 7, 8], [1, 2, 3, 4]]
b = [[1, 2], [2, 0], [1, 2], [7, 6, 6], [8, 8, 8], [2, 2], [3, 4]]

print intersection(b, c)

>>> [2, 1, 0, 0, 2, 1]
def交叉口(b、c):
计数=[]
对于zip(b,c)中的l1和l2:
n_same=sum([1表示x1,x2表示zip(l1,l2),如果x1==x2])
count.append(n_相同)
返回计数
#还是作为一个班轮
交叉点=lambda b,c:[sum([1表示x1,x2在zip(l1,l2)中,如果x1==x2])表示l1,l2在zip(b,c)中]
#x x>>[2,1,0,0,2,1]

它们的行大小是否相同?在这种情况下,我们可以使用numpy:

import numpy as np

c = [[1,2], [2,3]]
b = [[1,2], [2,0]]
output = (np.array(c) == np.array(b)).sum(axis=1).tolist()
[2,1]

如果我们有不同的长度,我们可能会拉链和使用这个:

output = [(np.array(i[0]) == np.array(i[1])).sum() for i in list(zip(c,b))]

你原来的缩进不在图表上。请检查集体编辑智慧是否符合您的预期。(应该是然后和
intersect()
)呈现的代码似乎没有将
def
ing
intersect()
与使用它分开。你可以使用python库吗?你的问题是什么?你不满意的是什么?如果
c=[[1,1,]
b=[[1]]
,预期的结果是什么<代码>[1]<代码>[2]?顺便说一句,你应该试着更清楚地解释你的问题。在你的问题上,已经有3个“不清楚你在问什么”的接近票数。
output = [(np.array(i[0]) == np.array(i[1])).sum() for i in list(zip(c,b))]