Python 用逻辑编词典

Python 用逻辑编词典,python,Python,“A”、“B”和“C”队分别连续进球12次、1次和9次 teams = ['A','B','C'] goals = [12,1,9] 哪个队进了第五个球?答案是A队。 哪个队进了第13个球?答案是B队。 哪个队进了第21个球?答案是C队 我想编一本关于团队与目标编号的字典。 @凯文的回答很好 dict(enumerate([t for t,g in zip(teams, goals) for _ in range(g)], 1)) 然后,给定的列表是[5,13,21]。如何获取列表:['A

“A”、“B”和“C”队分别连续进球12次、1次和9次

teams = ['A','B','C']

goals = [12,1,9]
哪个队进了第五个球?答案是A队。 哪个队进了第13个球?答案是B队。 哪个队进了第21个球?答案是C队

我想编一本关于团队与目标编号的字典。 @凯文的回答很好

dict(enumerate([t for t,g in zip(teams, goals) for _ in range(g)], 1))
然后,给定的列表是[5,13,21]。如何获取列表:['A','B','C']

goaldict = {}
goal_num = 1
for position,team in enumerate(teams):
    for goal in range(0, goals[position]):
        goaldict[goal_num] = team
        goal_num = goal_num + 1
这大致相当于:

d = {}
count = 1
for team, goal in zip(teams, goals):
    for i in range(goal):
        d[count] = team
        count += 1

你试过什么吗?字典不能有重复的键。你想要制作的dict不能像你在这里展示的那样存在。它不能是字典,至少不能是你设置它的方式,因为dict只能出现一个键。正如@Kevin所说,Python中的字典不能有重复的键,因此如果您需要您描述的版本,您将需要两个平行列表,而不是OK我更正了我的问题。
>>我的字典={1:'A',2:'B',…}
我喜欢您的代码,
dict(枚举([t代表t,g在zip中(团队,目标)代表范围(g)],1))
。你们能给我解释一下吗?好的,那个么给出的列表是[5,13,21]。如何获取列表:['A'、'B'、'C']??
[d[idx]用于给定列表中的idx]
d = {}
count = 1
for team, goal in zip(teams, goals):
    for i in range(goal):
        d[count] = team
        count += 1