python - 比较字典中键列表中的项目
问题描述
我有一个字典,其中每个键的值作为项目列表。我想比较字典中每个键列表中每个索引处的项目,并检查它是否相同。
dict1=OrderedDict([('A1', ['G', 'N', 'K', 'G', 'I', 'R', 'E', 'L']),
('B1', ['G', 'N', 'K', 'G', 'I', 'R', 'E', 'L']),
('C1', ['G', 'N', 'R', 'G', 'I', 'R', 'R', 'L'])])
我想检查键列表中的A1
索引 0 是否与键中的索引 0B1
和C1
. 同样,我想检查 keyA1
中的每个索引,其他键列表中的相应索引是否相同。
我试过但无法比较字典中每个键的索引。
解决方案
您可以zip
将列表放在一起,然后将每个元素与每个相应的元素进行比较。
dict1=OrderedDict([('A1', ['G', 'N', 'K', 'G', 'I', 'R', 'E', 'L']),
('B1', ['G', 'N', 'K', 'G', 'I', 'R', 'E', 'L']),
('C1', ['G', 'N', 'R', 'G', 'I', 'R', 'R', 'L'])])
for i, elems in enumerate(zip(*dict1.values())):
print "%d %s" % (i, elems)
if any(elems[0] != check_elem for check_elem in elems[1:]):
print "The key A1 is different at index %d" % (i)
这给出了:
0 ('G', 'G', 'G')
1 ('N', 'N', 'N')
2 ('K', 'K', 'R')
The key A1 is different at index 2
3 ('G', 'G', 'G')
4 ('I', 'I', 'I')
5 ('R', 'R', 'R')
6 ('E', 'E', 'R')
The key A1 is different at index 6
7 ('L', 'L', 'L')
推荐阅读
- ios - `dd of=/dev/rdisk4` 在越狱的 iOS 上给出 `Operation not allowed`
- batch-file - 如果我运行我的 .bat(打开 FF),我可以看到窗口。从任务计划程序,它在 FF 中打开 url,但它不可见。我怎样才能明显地打开它?
- java - Spring Cloud Gateway 不适用于 DiscoveryClientRouteDefinitionLocator
- serialization - Flatbuffer 线尺寸大于预期
- javascript - 日期字段的设置值不粘
- r - 为什么我无法安装 kohonen 包 R
- c++ - 枚举属性未被识别为
- javascript - Javascript/nodejs 使用嵌套数组动态构建 JS 对象
- mysql - MySQL对角求和值
- r - 从 R 数据框列中删除停用词