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

如何根据用户输入的多个变量名合并对应Python列表?

问题:根据用户输入合并多个列表

现有Python代码如下:

rock = ['lightning', 'gun', ...]
gun = ['lightning', 'sponge', ...]
lightning = ['wolf', 'sponge', ...]
devil = ['wolf', 'sponge', ...]
dragon = ['wolf', 'sponge', ...]
water = ['wolf', 'sponge', ...]
air = ['wolf', 'sponge', ...]
paper = ['wolf', 'sponge', ...]
sponge = ['wolf', 'rock', ...]
wolf = ['gun', 'rock', ...]
tree = ['gun', 'rock', ...]
human = ['gun', 'rock', ...]
snake = ['gun', 'rock', ...]
scissors = ['gun', 'rock', ...]
fire = ['lightning', 'gun', ...]

user_choice = input().split(",")

print(user_choice[0] + user_choice[1], sep=", ")

需求说明:
根据用户输入的任意数量变量名,生成一个合并后的大列表。例如输入rock, gun时,需要得到合并后的列表:

['lightning', 'gun', ..., 'lightning', 'sponge', ...]

解决方案

直接使用零散变量无法动态根据输入字符串获取对应列表,因此需要先将所有列表存入字典,再处理用户输入完成合并。改进后的代码如下:

# 将所有列表存入字典,键对应原变量名
choice_lists = {
    'rock': ['lightning', 'gun', ...],
    'gun': ['lightning', 'sponge', ...],
    'lightning': ['wolf', 'sponge', ...],
    'devil': ['wolf', 'sponge', ...],
    'dragon': ['wolf', 'sponge', ...],
    'water': ['wolf', 'sponge', ...],
    'air': ['wolf', 'sponge', ...],
    'paper': ['wolf', 'sponge', ...],
    'sponge': ['wolf', 'rock', ...],
    'wolf': ['gun', 'rock', ...],
    'tree': ['gun', 'rock', ...],
    'human': ['gun', 'rock', ...],
    'snake': ['gun', 'rock', ...],
    'scissors': ['gun', 'rock', ...],
    'fire': ['lightning', 'gun', ...]
}

# 处理用户输入,去除每个选项的前后空格
user_choice = [item.strip() for item in input().split(",")]

# 初始化合并后的大列表
merged_list = []
# 遍历用户选择的每个名称,合并对应列表
for choice in user_choice:
    # 容错处理:若输入不存在的名称,给出提示
    if choice in choice_lists:
        merged_list.extend(choice_lists[choice])
    else:
        print(f"警告:不存在名为{choice}的列表")

# 输出最终合并结果
print(merged_list)

关键步骤说明:

  • 用字典存储列表:将独立变量转换为字典键值对,实现通过输入字符串直接获取对应列表,支持任意数量的输入项。
  • 处理输入空格:使用strip()去除输入项的前后空格,避免因输入带空格导致无法匹配字典键的问题。
  • 遍历合并列表:使用extend()方法将选中列表的元素添加到结果列表,相比+操作更高效(+会生成新列表,extend()直接在原列表追加)。
  • 容错处理:增加存在性判断,避免因输入无效名称导致程序报错。

内容的提问来源于stack exchange,提问作者Breathe of fate

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:54:33