22

可能重复:
如何制作一个包含多个键的字典?

我有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) {})
4

2 回答 2

41

您可以使用任何(可散列的)对象作为 python 字典的键,因此只需使用包含这两个值的元组作为键。

于 2012-04-12T13:45:57.443 回答
27

我相信您可以使用元组作为字典的键。所以你会有

mydict = {}
mydict[(usermac1,useragent1)] = [ [area1, videoid1, 10],[area1,videoid2,29]... ]
于 2012-04-12T13:46:51.107 回答