如何在同一循环中遍历多变量 生成指定队伍配对列表sort_teams
实现方案
你可以通过步长遍历索引的方式,在同一个循环里同时处理队伍配对和赔率分组,优先生成sort_teams的同时完成后续数据拼装,代码如下:
teams = ['Team1','Team2','Team3','Team4'] odds = ['2','2.5','3','2.1','2.8','1.9'] sort_teams = [] # 你示例的json结构语法不合法,这里用列表套元组存储匹配你要的内容结构 final_data = [] for i in range(0, len(teams), 2): # 优先生成对阵字符串,存入sort_teams match_pair = f"{teams[i]} - {teams[i+1]}" sort_teams.append(match_pair) # 同步计算当前对阵对应的赔率起始下标,同步处理赔率 odd_start = (i // 2) * 3 odd_str = ", ".join(odds[odd_start: odd_start + 3]) final_data.append((match_pair, odd_str)) print(sort_teams) # 输出:['Team1 - Team2', 'Team3 - Team4'] print(final_data) # 输出:[('Team1 - Team2', '2, 2.5, 3'), ('Team3 - Team4', '2.1, 2.8, 1.9')]
逻辑说明
- 循环按步长2遍历
teams的下标,每次取连续两个队伍拼接为对阵字符串,优先写入sort_teams,满足你生成该列表的优先级要求 - 每完成1次队伍配对,对应的赔率起始下标往后偏移3位,通过
(i//2)*3计算即可,一次循环同时完成两个变量的遍历,不需要多次循环
如果你实际使用时
teams和odds长度是动态的,建议循环前加合法性校验:assert len(teams) % 2 == 0、assert len(odds) == len(teams)//2 *3,避免索引越界报错。
内容的提问来源于stack exchange,提问作者schuch
相关产品推荐
相关产品推荐

