【发布时间】:2018-05-28 11:54:57
【问题描述】:
我正在尝试编写程序的一部分,其中用户输入一个目标词 (targetWord = input()),分配一个嵌套字典,其键与输入词相同。
例如:
mainDict = {
'x': {'one': 1, 'blue': 1, 'green' :1},
'y': {'red': 1, 'blue': 2, 'two': 1},
'z': {'one': 1, 'green': 1, 'red': 1}
}
嵌套字典中的所有值都被赋值为整数。
用户可以输入'x',程序将分配给它:
targetDict = mainDict['x']
然后程序应该允许用户再次输入单词,但这一次输入中的每个单词都被附加到一个查找列表中,例如用户输入'y',然后是'z':
lookup = ['y', 'z']
然后程序应该遍历嵌套字典,并且对于每个具有对应键的值,如targetDict,只将值附加到新的嵌套列表中,并添加嵌套字典值的任何值。所以这部分的输出应该是:
targetOutput = [[2], [1, 1]]
因为在嵌套字典'y' 中,只有'blue' 是一个公共键,它的值2 被放入一个列表,然后附加到targetOutput。 dict 'z' 的情况相同,其中键 'one' 和 'green' 出现在 'x' 和 'z' 中,将它们的值 1 和 1 放入嵌套列表中。
这是我所拥有的功能失调代码的表示:
targetOutput = []
targetDict = mainDict[targetWord]
for tkey in targetDict:
tt = []
for word in lookup:
for wkey in primaryDict[word]:
if tkey == wkey:
tt.append(targetDict[tkey])
tl.append(sum(tt))
print((pl))
最后的 sum 函数是因为我的实际最终输出应该是嵌套列表中值的总和,类似于:
tl = [[2], [2]]
我也试图让相反的事情发生,在查找中每个键的另一个列表中,它返回一个嵌套列表,其中包含 targetWord 字典也有一个键的每个值的总和,例如:
ll = [[2], [2]]
我的问题是,如何修复我的代码以输出上述 2 个列表?我对字典很陌生。
【问题讨论】:
-
你的问题很难理解。你能\或理解它的人重新措辞吗?
-
@Ev.Kounis 我有很多解释要做,抱歉。所以从根本上说,它应该创建 2 个嵌套列表,其中来自 mainDict 的值的总和与给定的 targetWord 和查找共有的键是用户输入。从技术上讲,这两个列表最终应该打印相同的内容。
标签: python python-3.x list dictionary sum