嘿即時通訊開始學習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'。 –