【问题标题】:How to solve this loop to print all the values?如何解决此循环以打印所有值?
【发布时间】:2022-01-24 13:14:08
【问题描述】:

它应该打印 5,3.33 但它只打印 3 ?如何打印两个值

bucket_data22={1: {'key': 'Security Awareness Overview', 'value': 20, 'start_date': '13/07/2021', 'end_date': '12/08/2021', 'id': 155}, 
             2: {'key': 'Security Awareness Overview', 'value': 0, 'start_date': '13/07/2021', 'end_date': '12/08/2021', 'id': 159}, 
             3:  {'key': 'Security Awareness Overview', 'value': 30, 'start_date': '24/09/2021', 'end_date': '27/09/2021', 'id': 174}}
completed_data={155: 1, 174: 1}
for z in completed_data:
    print(z)
for i in bucket_data22:
    if (bucket_data22[i]['id']==z):
        print((completed_data[z]/bucket_data22[i]['value'])*100)


【问题讨论】:

  • Ans: 5,3.3 但它只打印 3.3

标签: python django


【解决方案1】:

z 的最后一个值是 completed_data,因此您只能得到一个匹配项(id 174)。

你应该测试bucket_data22[i]['id'] in completed_data

for i in bucket_data22:
    if (bucket_data22[i]['id'] in completed_data):
        print((completed_data[z]/bucket_data22[i]['value'])*100)

输出:

5.0
3.3333333333333335

【讨论】:

  • 如果与 id 不匹配,如何将其他值打印为“0”!
  • dict_keys(['start_date', 'end_date']) dict_keys(['start_date', 'end_date']) dict_keys(['start_date', 'end_date', 'value']) dict_keys( ['start_date', 'end_date'])=====如何附加 t.append({"start":start_date,"v":value})==如果它在 25 循环中出现 1 即值仅出现 1第 10 位和第 12 位的时间(之前的逻辑题)
【解决方案2】:

似乎第二个循环仅在第一个循环完成后才开始。
因此,第二个循环始终获得相同的“z”值,即 174。
如果要迭代 'z' 的所有值,则必须将第二个循环移到第一个循环中。

bucket_data22={1: {'key': 'Security Awareness Overview', 'value': 20, 'start_date': '13/07/2021', 'end_date': '12/08/2021', 'id': 155}, 
         2: {'key': 'Security Awareness Overview', 'value': 0, 'start_date': '13/07/2021', 'end_date': '12/08/2021', 'id': 159}, 
         3:  {'key': 'Security Awareness Overview', 'value': 30, 'start_date': '24/09/2021', 'end_date': '27/09/2021', 'id': 174}}
completed_data={155: 1, 174: 1}

for z in completed_data:
    for i in bucket_data22:
        if (bucket_data22[i]['id']==z):
          print((completed_data[z]/bucket_data22[i]['value'])*100)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多