嘿,我
开始学习python,在一个循环函数之后,我得到了一个看起来像这样的列表
>>>print test
['a','b','c','d']
['a','c','d','e']
['b','d','e','f']
我想比较它并找到诸如交叉点之类的东西,但由于两个列表在一个名称下,我无法完成它。
我想比较列表并计算字母。期望:
d, 3
a, 2
b, 2
等
有人可以帮助我吗?
此致敬意
如果您有列表列表,则可以使用 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})