映射到 Python 字典中列表的键

Key that maps to List in Python Dictionary

现在我有两个列表,我试图将它们合并到一个字典中,其中一个键是 list A 的一个元素,并且映射到 list B 中比较值的列表。

这些是对象列表。我正在按相等的模块值过滤对象。

假设 A 列表是 [ a1, a2, a3 ],B 列表是 [ b1, b2, b3, b4] 。我将每个 B 列表值与嵌套 for 循环中的每个 A 列表值进行比较。如果它们具有相同的模块值,则将 b_value 附加到 z,一个仅包含与某个 a_value 模块匹配的 b_value 的新列表。新列表 z 应该是与 z 列表具有相同模块的 a_value 键的值(已过滤 b_values)

考虑:

listA = []   # every a value in list a should be a key
listB = []   #contains many b values that must be filtered
execute = {}

for i in listA:
     z = []
     for j in listB:
          if j.module == i.module
               z.append(j)
     execute[i] = z                   # append full list as value for
                                      # key x

虽然这似乎没有按照我期望的方式构建字典。

字典最终可能看起来像这样: { a1: [b2, b3, b7] a2: [b1, b2, b6, b9] a3: [b4, b11]}

我的处理方式正确吗?我看到元组可能是一个选项,但我不知道如何。

感谢任何帮助!谢谢

你只犯了一个简单的错误。 执行[i] = z

试试这个作为例子(为简单起见删除过滤器):

import sys

listA = []
listB = []
execute = {}

listA.append("A1")
listA.append("A2")
listB.append("B1")
listB.append("B2")

for i in listA:
     z = []
     for j in listB:
        z.append(j)
     execute[i] = z

print execute