2013-10-13 50 views
-2

因此,我有一個字典,看起來像這樣,我想創建一個具有相同鍵的不同字典,但值是與每個元素相關聯的元素的數量鍵。 (例如29:[ '5'],30:[ '6'〕,31:[ '1'])創建一個包含每個鍵的元素數的新字典

29: ['15', '26', '16', '24', '4'], 
30: ['25', '16', '18', '21', '19', '4'], 
31: ['2'], 
32: ['17', '20', '4'], 
33: ['28', '20', '22', '4'], 
34: ['24', '30', '9', '4', '36'], 
35: ['33', '27', '22', '23', '32', '40', '17', '10', '20', '27', '28', '5'], 
36: ['34', '5', '39'], 
37: ['30', '28', '25', '29', '24', '21', '5'], 
38: ['29', '27', '33', '35', '22', '26', '4'], 
39: ['2'], 
40: ['4', '41'], 
41: ['40', '23', '20', '3'], 
42: ['36', '21', '31', '2'], 
43: ['35', '28', '37', '5'], 
44: ['38', '20', '33', '28', '4', '48', '45'], 
45: ['38', '43', '29', '30', '4'], 
46: ['39', '34', '42', '31', '36', '2'], 
47: ['41', '32', '20', '32', '40', '2'], 
48: ['45', '44', '38', '37', '49', '37', '43', '4'], 
49: ['48', '35', '43', '44', '43', '45', '3']} 
+0

那麼是什麼問題? –

+0

爲什麼你要''''''' - 一個包含字符串的列表 - 而不是'5',一個int,作爲值?這似乎沒有多少用途。 – DSM

+0

@DSM是正確的,所以在我的回答中我只是返回長度,如果你想['3']你必須用'k:[str(len(v))]替換'k:len(v)'' ',但似乎沒有多少意義。 – jabaldonedo

回答

2

使用對於迭代舊字典字典解析,並創建與新的詞典以下代碼:

>>> old_dict = {29: ['15', '26', '16', '24', '4'], 30: ['25', '16', '18', '21', '19', '4'], 31: ['2'], 32: ['17', '20', '4'], 33: ['28', '20', '22', '4'], 34: ['24', '30', '9', '4', '36'], 35: ['33', '27', '22', '23', '32', '40', '17', '10', '20', '27', '28', '5'], 36: ['34', '5', '39'], 37: ['30', '28', '25', '29', '24', '21', '5'], 38: ['29', '27', '33', '35', '22', '26', '4'], 39: ['2'], 40: ['4', '41'], 41: ['40', '23', '20', '3'], 42: ['36', '21', '31', '2'], 43: ['35', '28', '37', '5'], 44: ['38', '20', '33', '28', '4', '48', '45'], 45: ['38', '43', '29', '30', '4'], 46: ['39', '34', '42', '31', '36', '2'], 47: ['41', '32', '20', '32', '40', '2'], 48: ['45', '44', '38', '37', '49', '37', '43', '4'], 49: ['48', '35', '43', '44', '43', '45', '3']} 
>>> new_dict = {k:len(v) for k,v in old_dict.iteritems()} 
>>> print new_dict 
{32: 3, 33: 4, 34: 5, 35: 12, 36: 3, 37: 7, 38: 7, 39: 1, 40: 2, 41: 4, 42: 4, 43: 4, 44: 7, 45: 5, 46: 6, 47: 6, 48: 8, 49: 7, 29: 5, 30: 6, 31: 1} 
相關問題