在同一循环中迭代多个变量



我想用这种方式排序数据:

teams = ['Team1','Team2','Team3','Team4']
odds = ['2','2.5','3','2.1','2.8','1.9']
json = { 
{ 
'Team1 - Team2',
'2, 2.5, 3'
},
{ 
'Team3 - Team4',
'2.1, 2.8, 1.9'
}
}

如何首先创建:

sort_teams = [ 'Team1 - Team2', 'Team3 - Team4' ]

我猜您可能想要创建一个字典列表,其中的值是团队和赔率的列表。你要求将它们作为字符串,你可以这样做,但我怀疑这不是你最终需要的。无论如何,以下是如何做到这两点的方法。

您可以使用numpy将每个列表分成两部分,并使用zip并行地遍历两个列表的每一半。如果你真的想要一个字符串,那就用.join,如果你想要一个列表,那就用.tolist()

import numpy as np
teams = ['Team1','Team2','Team3','Team4']
odds = ['2','2.5','3','2.1','2.8','1.9']
out = []
for t,o in zip(np.array_split(teams,2),np.array_split(odds,2)):
out.append({
'team_str': ' - '.join(t),
'odds_str': ', '.join(o),
'team_list': t.tolist(),
'odds_list': o.tolist()
})

输出
[
{
'team_str': 'Team1 - Team2',
'odds_str': '2, 2.5, 3', 
'team_list': ['Team1', 'Team2'],
'odds_list': ['2', '2.5', '3']
}, 
{
'team_str': 'Team3 - Team4',
'odds_str': '2.1, 2.8, 1.9',
'team_list': ['Team3', 'Team4'],
'odds_list': ['2.1', '2.8', '1.9']
}
]

最新更新