如何在嵌套字典中的嵌套列表之间循环?

时间:2020-07-07 17:18:31

标签: python list dictionary

嗨,我在编写代码时遇到错字,但我不知道为什么会这样。如果有人可以帮助,将不胜感激!

latest = ["time", 7]

current_Stock = [["time", "8"], [{"N/A": "N/A", "N/A": "N/A", 
                                  'historical_data': [['sec', 10], 
                                                      ["sec", 5], 
                                                      ["sec", 2], 
                                                      ["sec", 7], 
                                                      ["sec", 9], 
                                                      ["sec", 8]]}]]

i = 0

for x in currentStock[1]['historical_data']:
    if latest[1] == currentStock[1]['historical_data'][i][1]:
        associated_value = currentStock[1]['historical_data'][i][1]

        print(associated_value)

2 个答案:

答案 0 :(得分:0)

def iterate(lst, pkey= None):
    if isinstance(lst, dict):
        for key in lst:
          iterate(lst[key], key) # call

    elif isinstance(lst, (list, set)):
        for l in lst:
          iterate(l, pkey) # call
    else:
        print(lst) # do something

iterate(current_Stock)

答案 1 :(得分:0)

  • 首先,您将列表定义为current_Stock,并将其用作currentStock
  • 第二,您忘了遍历包含字典的列表。
  • 第三,您忘记在i循环结束时更新for的值。 试试这个,让我知道您是否遇到任何问题/错误。在这里:
latest = ["time", 7]
currentStock = [["time", "8"], [{"N/A": "N/A", "N/A": "N/A", 'historical_data': [['sec', 10], ["sec", 5], ["sec", 2], ["sec", 7], ["sec", 9], ["sec", 8]]}]]
i = 0
for x in currentStock[1][0]['historical_data']:
    if latest[1] == currentStock[1][0]['historical_data'][i][1]:
        associated_value = currentStock[1][0]['historical_data'][i][1]
        print(associated_value)
    i+=1
相关问题