多个python嵌套for循环,可能递归遍历列表。蟒蛇3

时间:2018-02-17 19:48:19

标签: python json python-3.x riot-games-api

我正在尝试将participantId中的第一项与str中的第一个项匹配(每个[' participantId'])。然后在participantId中的第二个项目到第二个列表,依此类推。

participantId = ['2','5','7','4','10','9','2']

each['participantId'] = [[1,2,3,4,5,6,7,8,9,10],
                         [1,2,3,4,5,6,7,8,9,10],
                         [1,2,3,4,5,6,7,8,9,10],
                         [1,2,3,4,5,6,7,8,9,10],
                         [1,2,3,4,5,6,7,8,9,10],
                         [1,2,3,4,5,6,7,8,9,10],
                         [1,2,3,4,5,6,7,8,9,10]]

所以我想在participantId上使用for循环但是只有列表中的第一项用第一个列表做一个if语句,那么participantId中的第二个项用第二个列表做一个if语句。截至目前,我的代码只是将所有参与者列表与每个列表匹配。这是我的代码片段:

for each in json['participants']:
                for x in str(each['participantId']):
                    print(x)
                    for i in participantId:
                       if x == i:
                            kills = each['stats']['deaths']
                            print('kills')
                            print(kills)

我已经看过递归遍历列表作为解决方案,但我似乎无法做到这一点。我对python和编码很新,所以可能会遗漏一些功能。

1 个答案:

答案 0 :(得分:0)

我建议使用词典理解来做这样的事情 例如:

participant_data = {
        _id: data for _id, data in \
        zip(participantId, each['participantId'])
        }

participant_data设为字典,其中键是participantId中的项目,值是each['participantId']中的项目。要获取特定ID的数据,您只需使用participant_data[id_of_participant]