22

重複の可能性:
1 つの値に対して複数のキーを持つ辞書を作成するにはどうすればよいですか?

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

                        ...

キーとして1つのアイテムのみを使用して辞書を作成する方法しか知りません。誰でも助けることができますか?

私のコードは次のとおりです。

    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 辞書のキーとして使用できるため、これら 2 つの値を含むタプルをキーとして使用するだけです。

于 2012-04-12T13:45:57.443 に答える
27

タプルを辞書のキーとして使用できると思います。だからあなたは持っているでしょう

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