2016-03-05 68 views
-4

在Python中,我有以下列表:Python的計數列表和類型

['personA', 'banana'] 
['personB', 'banana'] 
['personA', 'grape'] 
['personA', 'lemon'] 
['personA', 'lemon'] 
['personB', 'banana'] 

如何在下面的表格獲取列表:

['personA', 'lemon', 2 ] 
['personB', 'banana', 2] 

我都數不過來有多少次水果發生在一個人身上。
(我已經概括了水果的問題)
對於那些downvoted:如果我發佈時做錯了,我可以理解挫折。我是一個新成員,所以如果你倒退了,請提一下你的問題,這樣我就可以考慮下一個問題。

+1

那麼你會如何去了解這一點,如果你這樣做在紙上?你能解決這個問題嗎? –

+0

在你的輸出中,personA發生了什麼?你只想要最常見的水果? – timgeb

+0

請在你的問題中包括你到目前爲止所嘗試的內容。 – h7r

回答

0
newlist = [] 
for sublist in yourlist: 
    already_in_list = False 
    for index, newsublist in enumerate(newlist): 
     if sublist == newsublist[:-1]: 
      newlist[index][2] += 1 
      already_in_list = True 
    if not already_in_list: 
     newlist.append(sublist+[1]) 

使用列表的count方法 -

>>>newlist 
[['personA', 'banana', 1], ['personB', 'banana', 2], ['personA', 'grape', 1], ['personA', 'lemon', 2]] 
1

你爲什麼不使用collections.Counter,你可以儘管

your_list = [['personA', 'banana'], ['personB', 'banana'], ['personA', 'grape'], ['personA', 'lemon'], ['personA', 'lemon'], ['personB', 'banana']] 

for i in your_list: 
    print(i, your_list.count(i))