【问题标题】:For loops in a dictionary and if statement字典中的 for 循环和 if 语句
【发布时间】:2014-07-18 06:49:50
【问题描述】:

首先,我不得不说我是python的初学者。 然后,这是我的问题: 我有一本像这样的字典:

dic = {} 
dic["a", 1] = 0 
dic["a", 2] = 2 
dic["b", 1] = 5 
dic["b", 2] = 0 
... 

我想用这个字典做一个 for 循环来测试所有的键对,并在 if 语句中找出哪些相当于 0。 我想到了:

for [co, l], ch in dic.items(): 
    if [co, l] == 0: 

但是 if 语句永远不会是真的,所以我什么也做不了。 有没有人可以帮帮我?

谢谢

【问题讨论】:

  • 你忘了在[co, l]之前使用dic
  • 你为什么要测试 [co, l] 是否等于 0?您想测试值,ch

标签: python loops if-statement for-loop dictionary


【解决方案1】:

[co, l] 是密钥(或它的副本);它是一个包含 2 个项目的列表,并且不能等于 0。相反,您想测试 ch 值,然后可能对密钥执行一些操作。

dic = {} 
dic["a", 1] = 0 
dic["a", 2] = 2 
dic["b", 1] = 5 
dic["b", 2] = 0 
... 

for [co, l], ch in dic.items(): 
    if ch == 0:
        print("The value for key {}, {} was 0".format(co, l))

或者如果你想按键迭代:

for key in dic:
    if dic[key] == 0:
        print("The value for key {} was 0".format(key))

【讨论】:

    【解决方案2】:

    根据 cmets:

    for ch in dic.items():
        if ch == 0:
    

    【讨论】:

    • 请提供更好的描述,以便 OP 和 SO 的未来访问者了解您所做的事情。
    【解决方案3】:

    [co, l] 永远不会是 0。我认为您的意思是测试 ch。

    for [co, l], ch in dic.items():
    ...     print [co, l], ch
    ...
    ['a', 1] 0
    ['b', 2] 0
    ['b', 1] 5
    ['a', 2] 2
    

    【讨论】:

      猜你喜欢
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 2013-12-28
      • 2021-06-27
      • 1970-01-01
      相关资源
      最近更新 更多