如何使用.count计算一个列表中每个项目出现在python的另一个列表中的次数?

时间:2017-09-03 11:11:19

标签: python

我试图使用python的.count计算一个列表中的每个项目出现在另一个列表中的次数。这就是我所拥有的:

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3']
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8']

print(x1t.count(tentslist[0-11]))

我要找的输出是3,但是我得到0.这是为什么?我该如何解决这个问题?

三江源。

5 个答案:

答案 0 :(得分:2)

问题是它是否计算整个帐篷列表在x1t中的次数。这确实是0。

您似乎想要的是x1t中的元素在tentslist中的次数是多少?那么这将是一个解决方案

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3']
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8']

count = 0
for x in x1t:
    count += tentslist.count(x)

print(count)

答案 1 :(得分:2)

这可以通过使用列表理解

来实现
count = sum([x1t.count(x) for x in tentslist])

这首先计算每个元素的出现次数,然后将它们相加以获得总结果

编辑:根据评论中的建议,我们也可以完全删除列表理解,只使用此

count = sum(x1t.count(x) for x in tentslist)

答案 2 :(得分:2)

你需要交集吗?

len( set(x1t) & set(tentslist) )

输出:3

答案 3 :(得分:0)

以下是count()方法的语法: list.count(OBJ) obj是列表中要计算的对象。

您的代码将仅返回null:

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3']
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3']]

print(x1t.count(tentslist))

output: 1

使用:

tentslist = ['E4', 'C2', 'C8', 'G8', 'G1', 'A7', 'C5', 'G4', 'A5', 'E1', 'E6', 'A3']
x1t = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8']
matches = set(x1t) & set(tentslist)
match_count = len(matches)

答案 4 :(得分:0)

sum(x1t中x的tentslist.count(x))