python - 遍历所有值并找到该值的键
问题描述
我需要遍历字典并找到某些值的键。字典如下:
z1 = {9376: 172, 1: 168, 2: 179, 3: 2, 132: 9740, 145: 179, 137: 185, 135: 1, 142: 13528, 113: 158, 9781: 176, 9782: 168, 152: 13527, 9375: 9504, 127: 1}
我也有一个列表,我想检查字典并找出相应的键。
z =[13527,9741,9740,9505,9504,200,189,185,176,172,168,1]
我需要找出 z1 中存在哪些 z 值,然后制作匹配值和 key 的字典。以下是我正在使用的代码
for i in range(len(z1)) :
try :
p = z[i]
a = list(z1.keys())[list(z1.values()).index(p)]
e1.append(a)
e2.append(p)
except (ValueError, IndexError,AttributeError) :
continue
e3 = list(zip(e1,e2))
print(e3)
我得到的结果是
[(152, 13527), (132, 9740), (9375, 9504), (137, 185), (9781, 176), (9376, 172), (1, 168), (135, 1)]
现在在字典 z1 中,您可以看到值 168,1 重复了两次并且具有唯一键。当我运行 for 循环时,我只得到单个键值对。我应该怎么做才能使所有键具有相同的值。即我的最终答案应该是
[(152, 13527), (132, 9740), (9375, 9504), (137, 185), (9781, 176), (9376, 172), (1, 168), (9782,168) (135, 1), (127,1)]
解决方案
也许这就是你需要的:
e3 = [(k, i) for i in z for k in z1 if i==z1[k]]
给我 :
[(152, 13527), (132, 9740), (9375, 9504), (137, 185), (9781, 176), (9376, 172), (1, 168), (9782, 168), (135, 1), (127, 1)]
推荐阅读
- c# - C# PSExec 从 StreamReader 解析执行多个路径
- javascript - 将变量声明为函数并在一个语句中具有属性
- python - 三角形*数字*图案
- javascript - 删除调用 onclick 的元素
- javascript - ValidateUsername 是只读的 | 带有 Jest/Enzyme 的 TS
- javascript - React + Typescript 对象道具到组件错误
- ruby - Prawn PDF中的左右拆分
- sql - 按 ID 选择最小 Seq Num
- python - 如何返回数据结构中的所有项目?
- amazon-web-services - “你想让你的电脑被这个网络上的其他电脑和设备发现吗?”的含义是什么?在 AWS EC2 上?