我有一个庞大的字典(如数据库),我想找到一些特定的信息。我们称之为庞大的数据库A. 如果一个特定数量的新列表在A里面,我想打印一些信息。这就是我正在做的事(过度简化):
A = {info1:34, info2:4, info3:-34, info4:2,.......}
b = [1, 2, 3, 4, 5, 6, -1, -2, -3, -4, -5, -6]
for i,j in A.iteritems():
if j in b:
print b, i
似乎工作正常,但在更好地研究结果后,我意识到代码只打印出它找到的第一个巧合。我怎么能改变它以获得我的数据库中的所有巧合。
感谢您的帮助!!!!
答案 0 :(得分:0)
根据我的理解,你所尝试的是矫枉过正。这是一个利用dict
实际上是hash:
for item in b:
if item in A:
print A[item]
编辑:从你的编辑中看来,键和值是互换的。你为什么做这个?也许更好的方法是切换它们,这样我的上述解决方案就可以工作(它的很多效率更高,你只需要进行一次切换)。如果您需要多个相同的密钥,则可以使用MultiDict
,例如paste.util.multidict.Multidict
,可以pip install paste
安装
答案 1 :(得分:0)
当你说“我意识到代码只打印出它找到的第一个巧合”时,听起来你希望你的代码为同一个键返回多个匹配。 Python的dict具有唯一的密钥,因此这是不可能的(并且实际上没有意义)。如果您尝试使用相同的密钥存储多个值,则只会破坏以前的值。