一些和相關價值的發病率我有兩個列出的長度是相同的:計數兩個同步列表
alist = ['XX', 'HH', 'GG', 'XX', 'II', 'PP', 'LL', 'TT', 'KK', 'XX']
blist = [2, 3, 5, 5, 9, 8, 9, 4, 7, 2]
我想知道ALIST有blist相同數量的什麼值。我希望結果如下所示:
2 = XX; 3 = HH; 5 = GG,XX; 9 = II,LL; 8 = PP; 4 = TT; 7 = KK
我解決這樣的:
from collections import defaultdict
adict = {}
a = zip(blist, alist)
for key, value in a:
adict.setdefault(k, []).append(v)
其給出這樣的結果: adict:
{2: ['XX', 'XX'], 3: ['HH'], 4: ['TT'], 5: ['GG', 'XX'], 7: ['KK'], 8: ['PP'], 9: ['II', 'LL']}
,但我不想兩次相同的值,例如2:[」 XX','XX'] - 我想有2:['XX']。
I tried this using 'set' before the list of values:
a = zip(blist, alist)
for key, value in a:
a.setdefault(k, set[]).append(v)
但它抱怨... 任何想法?
很酷:)但是當我打印出這個文件,它也打印'集',如:2:set(['XX'] ),3:set(['HH'])等。爲什麼打印'set'? – edg 2013-03-12 15:54:13
迭代它取鑰匙,價值和格式那些你想要的事先 – 2013-03-12 15:56:15
f.ex.如果我這樣做: 如果鍵:> 如果鍵> 5: 打印鍵,d [鍵]鍵中d.keys(): 如果鍵> 5: 打印鍵,d [鍵] 我得到: 7:組([ 'KK']) 8:組([ 'PP']) 9:組([ 'II', 'LL']) 如何將我得到: 7:'KK' 8:'PP' 9:'II','LL' – edg 2013-03-12 15:58:30