2016-12-13 66 views
-3

我有這樣的元組的列表: -元組列表的最大數

l = [(1, 2, 'ABC'), (3, 2, 'LLL'), (4, 1, 'kkk')] 

我想有最大count.Basically我只在每個元組比較第二個元素,以獲得該項目,並計數出現最大次數。

上面的輸出應該是2,因爲2是所有元組中發生最多的元素。

又如: -

a = [ [("l", 4, 'ABC'), ("k", 1, 'LLL'), ("j", 1, 'kkk')] 

以上的輸出應爲1爲1爲最發生在所有元組。

如何做到這一點?

+2

了什麼人試圖,併發生了什麼事,當一個這樣做? – jonrsharpe

+0

使用字典統計問題通常非常簡單。你有沒有嘗試過任何東西並遇到問題?如果是這樣,請發佈您的代碼,以便我們可以幫助您。 – mgilson

+0

我試着用Counter來玩集合,但無法讓它適用於我的數據類型。 計數器(a).most_common(1) – skyfail

回答

0

我會用一個Counteritemgetter

from operator import itemgetter 
from collections import Counter 

l = [(1, 2, 'ABC'), (3, 2, 'LLL'), (4, 1, 'kkk')] 
print(Counter(map(itemgetter(1), l)).most_common(1)[0][0]) 

打印2

+0

感謝您的支持。但是,你能解釋一下使用的變量嗎? itemgetter(1)做什麼?什麼值傳入.most_common(1)[0] [0]? – skyfail

+0

@skyfail:請Google它。除了這裏提到的功能外,您將學到更多東西 –

+1

@skyfail'itemgetter(n)'是用於編寫'lambda item:item [n]'的另一個版本' – Copperfield