2012-04-12 20 views
5

Possible Duplicate:
How do I make a dictionary with multiple keys to one value?कुंजी के रूप में दो आइटम का उपयोग शब्दकोश अजगर

बनाने के लिए मैं डेटा के 5 स्तंभों,

usermac, useragent, area ,videoid, number of requests 

है मैं एक शब्दकोश बनाने के लिए कुंजी के रूप में दोनों (usermac, UserAgent) का उपयोग करना चाहते, अद्वितीय के बाद से (usermac, useragent) का संयोजन एक अद्वितीय उपयोगकर्ता का प्रतिनिधित्व करता है।

तो शब्दकोश होना चाहते हैं:

usermac1, useragent1: area1, videoid1, 10 
         area1, videoid2, 29 
usermac1, useragent2: area1, videoid1, 90 
         area1, videoid2, 34 

         ... 

मैं केवल कुंजी के रूप में केवल एक आइटम के साथ एक शब्दकोश बनाने के लिए कैसे पता है। तो क्या कोई मदद कर सकता है?

मेरी कोड है:

for line in fd_in.readlines(): 
     (mac, useragent, area, videoid, reqs) = line.split() 

    video_dict = d1.setdefault((mac,useragent) {}) 
    video_dict.setdefault(videoid, []).append(float(reqs)) 

और यह सिंटैक्स त्रुटि है:

video_dict = d1.setdefault((mac,useragent) {}) 
+1

क्या यह अभी पूछा नहीं गया था? – jamylak

+0

@jamylak शायद मुझे अपना कोड जोड़ना चाहिए था, मेरे पास कोड में कुछ वाक्यविन्यास त्रुटि है, इसलिए मैं आपकी मदद की सराहना करता हूं, धन्यवाद – manxing

उत्तर

22

आप एक अजगर शब्दकोश के लिए एक प्रमुख के रूप में किसी भी (hashable) वस्तु का उपयोग कर सकते हैं, तो सिर्फ एक टपल युक्त का उपयोग कुंजी के रूप में उन दो मूल्यों।

11

मुझे विश्वास है कि आप शब्दकोश के लिए कुंजी के रूप में एक tuple का उपयोग कर सकते हैं। तो आपके पास

mydict = {} 
mydict[(usermac1,useragent1)] = [ [area1, videoid1, 10],[area1,videoid2,29]... ] 
संबंधित मुद्दे