【发布时间】:2020-10-15 16:50:18
【问题描述】:
我正在尝试对一组电子竞技游戏数据进行一些数据分析。数据格式如下(由json转换而来):
game_data = [{"match_id":1, "players":[{"player_name":"Tom", "won":True},
{"player_name":"Anna", "won":False}]},
{"match_id":2, "players":[{"player_name":"Tom", "won":False},
{"player_name":"Fred", "won":True}]}]
我想获得玩家“汤姆”的列表,其中包含他的胜负。像这样:
tom_won = [True, False]
到目前为止我尝试过的方法(见下文)不起作用,所以我希望你们中的一个人能够向我展示一种更好的方法。
index = 0
tom_won = []
while index < len(game_data)
for game_data[index]["players"][0]["won"] in data[index]:
if game_data[index]["players"][0]["player_name"] == "Tom":
tom_won.append(game_data[index]["players"][0]["won"])
for game_data[index]["players"][1]["won"] in data[index]:
if game_data[index]["players"][1]["player_name"] == "Tom":
tom_won.append(game_data[index]["players"][1]["won"])
index += 1
【问题讨论】:
-
data和data[index]一样是什么? -
我认为你应该先处理数据结构。这将有助于简化您的代码。
-
while index < len(game_data)不要在 Python 中这样循环。你几乎总是想要一个 for 循环。 -
这个任务可以很容易地分成不同的子任务,比如遍历一个列表,访问一个字典的特定字段,以及收集一个列表中的值。之前,他们都在这里被多次询问和回答。我看不出这个带有特定输入数据的问题对未来的任何人有什么用处,我投票结束这个问题,因为需要更多关注。
标签: python loops dictionary iteration nested-lists