You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python变量遍历优化:世界杯抽奖程序代码简化问询

优化方案

1. 批量处理种子队洗牌

不要单独定义Seed1到Seed8变量,把所有种子分组放进一个二维列表,通过循环一次性完成洗牌,彻底消除重复代码:

  • 用seeds列表存储所有种子队分组
  • 遍历列表中的每个分组,执行random.shuffle()

2. 简洁专业的结果打印

用f-string结合str.join()替代繁琐的字符串拼接,代码更易读、易维护。


完整优化代码

import random

# 玩家列表
players = ["Alice", "Bob", "Charlie", "Delilah"]
random.shuffle(players)

# 所有种子队分组,统一存入二维列表
seeds = [
    ["Brazil", "Argentina", "France", "Spain"],
    ["England", "Germany", "Netherlands", "Portugal"],
    ["Belgium", "Denmark", "Uruguay", "Croatia"],
    ["Serbia", "Switzerland", "Senegal", "Mexico"],
    ["USA", "Poland", "Ecuador", "Morocco"],
    ["Wales", "Japan", "Ghana", "Canada"],
    ["Qatar", "South Korea", "Iran", "Cameroon"],
    ["Australia", "Saudi Arabia", "Tunisia", "Costa Rica"]
]

# 批量洗牌每个种子分组
for group in seeds:
    random.shuffle(group)

# 分配并打印结果(用enumerate高效获取索引)
for idx, player in enumerate(players):
    # 从每个种子分组中提取对应位置的球队
    assigned_teams = [group[idx] for group in seeds]
    # 用join拼接球队列表,f-string格式化输出
    print(f"{player} = {', '.join(assigned_teams)}")

你之前代码报错的原因

你尝试的for a in range(1,9): random.shuffle(range[a])存在两个问题:

  1. range(1,9)生成的是整数序列,不是存储变量的容器,无法通过range[a]获取Seed1这类变量
  2. 动态通过数字拼接变量名不是Python的规范写法,把相关数据放进列表/字典才是正确的做法

内容的提问来源于stack exchange,提问作者Dino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:16:24