嘿即时通讯开始学习Python和循环功能后,我得到了它看起来像这样在python比较列表
>>>print test
['a','b','c','d']
['a','c','d','e']
['b','d','e','f']
我想比较一下,发现东西一样路口名单,但因为这两个名单下一个名字我无法完成。
我想比较列表并计算字母。后市展望:
d, 3
a, 2
b, 2
等
有人能帮助我吗?
问候
嘿即时通讯开始学习Python和循环功能后,我得到了它看起来像这样在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})
好的,谢谢,我明白它工作正常。但如果你有,而不是字母单词怎么办? F.E. :['test','test2'] – CloudySi
'itertools.chain.from_iterable' - 你不需要手动展平列表 – inspectorG4dget
谢谢。如果我想数字的话?因此输出将是:'test':1'test2':1 – CloudySi
根据给出的内容,没有Python列表打印出来。假设你实际上拥有的是一个列表列表,只需依次遍历每个列表来计算事物('对于测试中的子列表:对于子列表中的项目:做东西')。 StackOverflow中有无数的问题可以处理一个字符的出现次数。 –
你想比较什么?你的目标似乎是计算每个字母的全球出现......为此,请使用'list.count'。 –