我正在尝试遍历一个字典,并确定在迭代过程中该值是否存在于第二个字典中。这些值是在列表项处具有元组坐标的列表。当我运行以下预期结果时,不会返回。我会做错什么?你知道吗
o={123:[(2045414.2025330812, 737011.67879535258), (2045345.5412850082, 736965.27060331404)]}
t={234:[(2053962.2499010414, 731325.2501180619), (2053955.6251330376, 731121.18739786744)]}
y={345:[(2045414.2025330812, 737011.67879535258), (2045345.5412850082, 736965.27060331404)]}
h={456:[(2045345.5412850082, 736965.27060331404), (2045414.2025330812, 737011.67879535258)]}
for k, v in o.items():
if v in h.values():
print k, v
如果您的意思是元组列表本身是无序的,那么问题可能在于您将
v
与h.values()
中的某个内容进行比较,但是h.values()
的列表顺序不同。为什么不简单地将集合存储为值呢?你知道吗也许您可以用这种格式创建数据结构,以避免不必要的开销。你知道吗
您正在比较元组的有序列表。要比较无序的元组集合,可以使用
set
:编写上述逻辑的另一种方法:
棘手的部分是将
dict.values()
转换成set
。因为h
只有一个值,所以在转换到set
之前需要提取唯一的值。你知道吗相关问题 更多 >
编程相关推荐