我试着在两本字典里找出每一个键的常用项。也许下面的代码可以更好地解释我的目的。我有太多的记录,因此这段代码需要很长时间才能运行;有什么方法可以有效地编写它?在
rcmd = {'1':{"A","B"},"2":{"A","C"},"3":{"B","C","D"}}
rmv = {'1':{"C","B"},"2":{"A","C"},"3":{"B","C","A"},"4":{"A"}}
correct_rcmd = []
for i in range(len(rcmd)):
for j in range(len(rmv)):
if rcmd.keys()[i] == rmv.keys()[j]:
correct_rcmd.append(rcmd.values()
[i].intersection(rmv.values()[j]))
print correct_rcmd
您永远不应该在字典的键中使用索引,尤其是如果您使用python2.x(正如您使用
print
而不使用任何()
)的情况下更是如此。在字典中的键的顺序在3.6之前(仅对于CPython作为实现细节的副作用)或python3.7中的默认顺序是不固定的。在
然后顺序是插入顺序-如果您以不同的顺序插入键,索引到
keys()
仍然会中断,因为您正在混合不同键的值!。在输出:
^{pr2}$这还有一个好处:使用较少的需要构造和处理的对象,以及使用集合来减少要处理的键的数量。如果你使用的是python2。在
相关问题 更多 >
编程相关推荐