在Python字典中映射到列表的键

在Python字典中映射到列表的键,python,list,dictionary,2d,Python,List,Dictionary,2d,现在我有两个列表,我正试图将它们合并到一个字典中,其中一个键是列表a的一个元素,它映射到列表B中的比较值列表 这些是对象列表。我正在按相等的模块值过滤对象 假设一个列表是[a1,a2,a3],而B列表是[b1,b2,b3,b4]。我将嵌套for循环中的每个B列表值与每个A列表值进行比较。如果它们具有相同的模块值,则b_值将附加到z,即仅包含与特定a_值模块匹配的b_值的新列表。新列表z应该是与z列表具有相同模块的a_值键的值(过滤的b_值) 考虑: listA = [] # every a

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

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

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

考虑:

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

将此作为exmaple尝试(为简单起见,已删除过滤器):


输出是{'A1':['B1','B2'],'A2':['B1','B2']}谢谢,在我的示例中这是一个输入错误。事实证明,我真正的问题是我定义了自己的对象,没有定义eq函数。在我的筛选过程中,比较总是错误的。啊,这就可以解释了。很高兴它发现了:)
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