2012-04-12 28 views
5

Possible Duplicate:
How do I make a dictionary with multiple keys to one value?sử dụng hai mặt hàng như chìa khóa để tạo python điển

Tôi có 5 cột dữ liệu,

usermac, useragent, area ,videoid, number of requests 

Tôi muốn sử dụng cả hai (usermac, useragent) như là chìa khóa để tạo ra một từ điển, từ độc đáo sự kết hợp của (usermac, useragent) đại diện cho một người dùng duy nhất.

rất điển sẽ như thế nào:

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

         ... 

tôi chỉ biết làm thế nào để tạo ra một từ điển với chỉ có một mục là then chốt. vì vậy bất cứ ai có thể giúp đỡ?

mã của tôi là:

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)) 

và nó có lỗi cú pháp:

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

Điều này không chỉ được hỏi? – jamylak

+0

@jamylak có lẽ tôi nên thêm mã của mình, tôi có một số lỗi cú pháp trong mã, vì vậy tôi đánh giá cao sự trợ giúp của bạn, cảm ơn – manxing

Trả lời

22

Bạn có thể sử dụng bất kỳ (hashable) đối tượng như một chìa khóa cho một cuốn từ điển python, vì vậy chỉ cần sử dụng một tuple chứa hai giá trị đó là khóa.

11

Tôi tin rằng bạn có thể sử dụng bộ tuple làm khóa cho từ điển. Vì vậy, bạn muốn có

mydict = {} 
mydict[(usermac1,useragent1)] = [ [area1, videoid1, 10],[area1,videoid2,29]... ] 
Các vấn đề liên quan