我很难让这段代码运行,希望得到大家的帮助。我有一个字典和一个列表,我需要遍历该列表并返回具有匹配值的字典。这是我到目前为止的代码,以及我可以打印到excel的desire输出
allJobs = {'A':[1,2,3],
'B':[2,3,4],
'C':[1,3],
'D':[3,4]}
Jobs = ['A','C']
JobsWithNums = {}
matchJobs =[]
for jobs in allJobs:
if jobs in Jobs:
JobsWithNums.append(jobs)
print(JobsWithNums)
JobsWithNums = {'A':[1,2,3],
'C':[1,3]}
错误原因-
python中的Dictionary没有
append()
方法,因此您将得到类似这样的错误-因此,append方法不能与dictionary一起添加新的key:value对。因此,您必须按照我在下面代码中显示的方式使用它
正确的解决方案-
当您找到匹配的键时,您必须迭代字典中的键并附加键的值。您应该按照以下方式进行操作-
输出:
请注意,append方法不适用于dictionary。所以你必须像我在代码中那样使用它。您也可以使用^{} 方法来完成。请参阅以下片段-
但与第一种方法相比,这可能是一种效率低下的方法。仅当您必须同时将多个键更新到字典中时才使用它
另一种方法-
一种较短(pythonic)的方法如下=>
输出:
您可以在此处了解有关这些的更多信息-python docs
希望这有帮助
您可以尝试以下方法:
这里的.key()返回作业(A、B、C、D)的名称,稍后您可以像
alljobs
一样引用它来获取值append方法的工作方式与您对字典的期望不同。您可以在循环中执行以下操作来绕过此问题:
这是迭代字典中的所有键和值,并在新JobsWithNums dict中创建这些条目
或者,您可以使用dict comprehension在一行中构建相同的列表:
相关问题 更多 >
编程相关推荐