映射到 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
现在我有两个列表,我试图将它们合并到一个字典中,其中一个键是 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