我有一個這樣的清單清單list1=[['a', '2'] ['a', '1'] ['b', '3'] ['c', '2'] ['b', '1'] ['a', '1']['b', '1'] ['c', '2']['b', '3'] ['b', '1']]我想遍歷此內容并找出每個第一個項目的編號:a:[2,1,1] b:[3,1,3,1] c:[2,2]最后,它應該打印每個鍵的計數并作為字典輸出{'a': 3, 'b':4, 'c':2}不需要輸出中間步驟。
2 回答

30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
絕對可以將其壓縮,但是您可以創建每個鍵的字典到每個值的列表:
d = {}
for key, val in list1:
if key not in d:
d[key] = []
d[key].append(val)
然后將列表推導和dict()構造函數一起用于最終結果:
d2 = dict((k, len(vallist)) for k, vallist in d.iteritems())

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
使用collections.Counter
:
如果我理解正確,您想知道每個“鍵”出現的次數。下面的代碼可以做到這一點:
d = Counter(x[0] for x in list1)
添加回答
舉報
0/150
提交
取消