【发布时间】:2013-11-14 08:58:40
【问题描述】:
Python 问题。假设我将有各种列表,像这样,
[1, 5, 3, 1, 9, 10, 1, 20]
[1, 5]
[1, 2, 3, 1, 7, 10, 1, 2, 8, 21]
[1, 5, 6, 4, 0, 16, 1, 5, 6, 4, 0, 16]
这些数字代表体育比赛的得分,其中第 1 队是列表的前半部分,第 2 队是列表的后半部分。列表前半部分的最后一个数字(第 1 队得分)始终是比赛总分。列表前半部分的倒数第二个数字始终是比赛加时赛的比分。列表中的第一项是第一节的得分。列表中的第二项是第二阶段的得分。等等。例如,[1,5] 表示团队 1 的总分是 1,团队 2 的总分是 5。另一个例子,[1,5,3,9,9,10,1, 20]表示一队第一节得1分,第二节得5分,加时赛得3分,总分9分,队2第一节得9分,第二节得10分,加时赛得1分加时赛,总分20分。
我想创建一个函数,将列表中的这些数字粘贴到字典中,如果列表中有值,它应该只填充字典键。
score['sec_away_team_1'], score['sec_away_team_2'], score['sec_away_team_3'], score['sec_away_team_4'], score['sec_away_team_ot'], score['sec_away_team_total'],
score['sec_home_team_1'], score['sec_home_team_2'], score['sec_home_team_3'], score['sec_home_team_4'], score['sec_home_team_ot'], score['sec_home_team_total']
做到这一点的一种方法是创建一个包含大量 if 语句的函数,如果我知道列表有多长,我可以针对如何解包列表做不同的方案,但是因为我将解包列表各种尺寸我认为制作这么多 if 语句会很丑...如何使用通用函数来完成此操作,该函数要么从列表中生成项目,要么使用它们并将它们弹出,或以其他方式?
【问题讨论】:
-
乐谱列表可以多长? 2个还是8个?或者还有其他选择吗?首先你是怎么得到这些数据的,看起来有点复杂。
-
我更新了几个例子。数据是这样的原因是因为我必须处理大学篮球、职业篮球、曲棍球、足球的分数……所以总有一个总分,那么在大学篮球中有一半 1 和一半 2 和 OT,在NBA有第一节、第二节、第三节、第四节和加时赛,曲棍球有3节和加时赛......
-
如果你觉得my answer对你有帮助,你可以Accept my Answer。