我试图使用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.这是为什么?我该如何解决这个问题?
三江源。
答案 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))