比较python中的列表

时间:2013-10-29 19:15:29

标签: python list compare

嘿我开始学习python并在循环函数之后得到一个看起来像这样的列表

>>>print test

['a','b','c','d']
['a','c','d','e']
['b','d','e','f']

我想比较它并找到像交叉点BUT这样的东西,因为这两个列表都在一个名字下我无法完成它。

我想比较列表并计算字母数。期望:

d, 3
a, 2
b, 2

有人可以帮我这个吗?

最好的问候

1 个答案:

答案 0 :(得分:4)

如果您有列表列表,则可以使用collections.Counter来计算字母:

>>> from collections import Counter
>>> test = [['a','b','c','d'],['a','c','d','e'],['b','d','e','f']]
>>> Counter(i for x in test for i in x)
Counter({'d': 3, 'a': 2, 'c': 2, 'b': 2, 'e': 2, 'f': 1})

或者,正如在评论中建议的inspectorG4dget一样,使用itertools.chain.from_iterable

>>> import itertools
>>> from collections import Counter
>>> test = ['test','test2']
>>> Counter(itertools.chain.from_iterable(test))
Counter({'t': 4, 's': 2, 'e': 2, '2': 1})