【问题标题】:Multiple python nested for loops, possibly recursively traverse lists. python 3多个python嵌套for循环,可能递归遍历列表。蟒蛇 3
【发布时间】:2018-02-17 19:48:19
【问题描述】:

我正在尝试将participantId 中的第一项与str(each['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 语句。截至目前,我的代码仅将所有参与者 ID 与每个列表匹配。这是我的代码的 sn-p:

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 和编码非常陌生,所以可能缺少一些功能。

【问题讨论】:

  • 我不明白您要做什么,最终操作each['stats']['deaths'] 不依赖于您当前正在查看的participantIdfor x ...for i ... 循环对 each 完全没有影响??
  • 统计数据不需要受到 for 循环的影响。我只想在第一个参与者 ID 与列表匹配的情况下调用这些统计信息。因此,在满足这些条件的情况下,他们会打印杀戮。也许如果我包含更多的代码就会有意义

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


【解决方案1】:

我建议对这样的事情使用字典理解。
例如:

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

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

【讨论】:

    猜你喜欢
    • 2022-11-06
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2021-11-20
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多