python - 如果 a 在 my_friends.items()
问题描述
这是我的代码如下:
my_friends = {
"Jose": 6,
"Rolf": 12,
"Anne": 6
};
for e, v in my_friends.items():
a = ('Jose', 6);
if a in my_friends.items():
print("yes");
运行此代码,您会打印 3 次“是”。这很令人困惑,因为当你打印 my_friends.items() 时,你会得到 [('Jose', 6), ('Rolf', 12), ('Anne', 6)] 如果是这样,不应该是的,因为 ('Jose', 6) 在 my_friends.items() 列表中出现一次,所以打印一次?对此新手,请原谅这个可能无知的问题。
解决方案
您给出的代码没有适当的缩进,所以让我先解决这个问题:
my_friends = { "Jose": 6, "Rolf": 12, "Anne": 6 }
for e, v in my_friends.items():
a = ('Jose', 6)
if a in my_friends.items():
print("yes")
让我打破你想要做的事情。这将使您更容易理解正在发生的事情。
1) 创建一个包含三个项目的字典。2) 使用循环
对字典进行迭代。(共3次迭代)
3)在每次迭代中,检查字典中是否存在。
4)确实存在于字典中,因此
在每次迭代中都会打印出来。for
('Jose', 6)
('Jose', 6)
"yes"
如果要检查('Jose', 6)
字典中是否存在,只需执行以下操作即可for
if a in my_friends.items():
print("yes")
或者,如果您真的想使用for
循环,可以执行以下操作:
a = ('Jose', 6)
for e, v in my_friends.items():
if a == (e,v):
print("yes")
BTW,你不需要写a = ('Jose', 6)
在for循环里面,你可以写在循环外面,如上图。a
关键是在循环中一次又一次地分配相同的值是多余的。你可以简单地在循环外做一次
推荐阅读
- php - 不理解 php 正则表达式
- css - 为什么我不能在垂直导航栏中隐藏子菜单?
- ios - APNS DeviceToken 在一段时间后变得无效
- selenium - 从 Selenium 自定义配置文件启动后,预先存在的附加组件不起作用
- postgresql - 我总是得到 255 个字符的值
- python - 这是一个正确的 Numpy 重塑吗?
- ansible - 如何使用 ansible 更改 vmware 网络适配器
- c# - 通过httpwebrequest发送docx文件,目标服务器为Soap Envelope形式。在 C# 中
- android - 来自 Google Play 控制台的安全警报?
- jpa - JPA Mapping 发出一张带有多个表的表