比较Python中同一字典中每个键的字典值
||
更新:
再一次问好。我的问题是,如何比较字典的值是否相等。有关我的词典的更多信息:
关键是会话号
每个键的值是嵌套列表-> f.e.
[[1,0],[2,0],[3,1]]
每个密钥的值长度相同,因此会话号1的值可能大于会话号2的值
这里是一个示例字典:
order_session =
{1:[[100,0],[22,1],[23,2]],10:[100,0],[232,0],[10,2],[11,2]], 22:[[5,2],[23,2],.......,
...}
我的目标:
步骤1:将会话编号1的值与字典中所有其他会话编号的值进行比较以确保相等
步骤2:获取下一个会话号并将这些值与其他会话号的其他值进行比较,依此类推
-最后,我们比较了每个会话号的值
步骤3:将结果保存到列表中f.e.
输出= [[100,0],[23,2],...]或输出= [(100,0),(23,2),...]
如果您可以看到会话1和会话10的值对[100,0]相同。会话1和22的值对[23,2]相同。
谢谢你的协助。
更新2
感谢您提供的所有帮助和技巧,这些技巧和技巧将列表的嵌套列表更改为元组列表,这对于处理它是非常好的。
我更喜欢Boaz Yaniv解决方案;)
我也喜欢使用collections.Counter()...不幸的是我使用2.6.4(Counter在2.7上工作),也许有时我会更改为2.7。
没有找到相关结果
已邀请:
4 个回复
搜洼挂时
我还建议(出于性能考虑,再次)将元组嵌套在列表中,而不是列表中(如果您不希望即时更改它们)。我在此处发布的代码将以任何一种方式工作,但是如果值已经是元组,它将更快。
视蕉梁拌客
基本上,这是通过所有值进行查看的,如果该值在以前看到过但在之前没有看到过,则将其附加到输出中。 请注意,这适用于值对的实际值-如果您具有导致指针的各种对象,则我的算法可能会失败(我尚未对其进行测试,所以不确定)。 Python对\“ low \”整数重复使用相同的对象引用;也就是说,如果您依次运行语句
和
,则
和
将指向同一整数对象。但是,如果将它们设置为10 ^ 5,则不会。但是我不知道限制在哪里,所以我不确定这是否适用于您的代码。
外镶受继
如果您真的需要列表清单
怪酞撩匹