各キーに値としてリストがあり、それらのリストのサイズが異なる辞書があります。add と set を使用してキーと値を入力しました (重複を避けるため)。辞書を出力すると、出力は次のようになります。
blizzard set(['00:13:e8:17:9f:25', '00:21:6a:33:81:50', '58:bc:27:13:37:c9', '00:19:d2:33:ad:9d'])
alpha_jian set(['00:13:e8:17:9f:25'])
ここで、blizzard と alpha_jian は、私の辞書の 2 つのキーです。
今、次のような2つの列を持つ別のテキストファイルがあります
00:21:6a:33:81:50 45
00:13:e8:17:9f:25 59
ご覧のとおり、最初の列の項目は、辞書の各リストのエントリの 1 つです。たとえば、00:21:6a:33:81:50 はキー「blizzard」に属し、00:13:e8:17:9f:25 はキー「alpha_jian」に属します。
私が望む問題は、テキストファイルの最初の列項目を調べ、その列エントリが辞書にある場合は、対応するキーを見つけ、対応するリストの長さを辞書で見つけ、それらを新しい辞書に追加することです。 newDict.
たとえば、00:21:6a:33:81:50 はブリザードに属します。したがって、newDict エントリは次のようになります。
newDict[blizzard] = 4 // since the blizzard key corresponds to a list of length 4.
これは、このタスクを実行すると予想されるコードです。
newDict = dict()
# myDict is present with entries like specified above
with open("input.txt") as f:
for line in f:
fields = line.split("\t")
for key, value in myDict.items():
if fields[0] == #Some Expression:
newdict[key] = len(value)
print newDict
ここで、私の質問は、上記のコードで #Some Expression とすべきものです。値がリストでない場合、これは非常に簡単です。しかし、リストを検索するにはどうすればよいでしょうか。前もって感謝します。