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

Python中如何通过输入打印对应数组(无需逐个判断)

解决输入数组名打印对应数组的问题(无需大量if语句)

这问题我之前写小工具的时候也碰到过,直接print输入的字符串肯定不行——因为input()返回的是字符串类型,不是变量本身。不用写一堆if x == 'b'这种重复代码,有两种实用思路:

方法1:用字典做映射(推荐,安全可控)

最稳妥的方式是手动创建一个字典,把允许用户访问的数组名称(字符串)和对应的数组做绑定,既能精准控制可访问的数组,又避免了安全风险。

示例代码:

# 定义你的数组
b = [1, 2, 3, 4, 5]
c = [2, 3, 4]
d = [1, 2, 3]

# 创建名称到数组的映射字典
array_map = {
    'b': b,
    'c': c,
    'd': d
}

# 获取用户输入
input_name = input("请输入要打印的数组名称:")

# 从字典中取出对应数组并打印,同时处理输入错误的情况
print(array_map.get(input_name, f"不存在名为 {input_name} 的数组"))

用户输入b时,就会从字典里拿到数组[1,2,3,4,5]并打印出来,完美解决你的问题。

方法2:利用全局/局部变量字典(不推荐,有安全风险)

如果你不想手动维护字典,可以用Python内置的globals()或locals()函数获取当前的变量字典,直接通过输入的字符串查找对应的变量。

示例代码:

# 定义你的数组
b = [1, 2, 3, 4, 5]
c = [2, 3, 4]
d = [1, 2, 3]

input_name = input()

# 通过globals()获取全局变量,找到对应的数组
target_array = globals().get(input_name)
if target_array is not None:
    print(target_array)
else:
    print(f"没有找到名为 {input_name} 的数组")

不过要注意:这种方法会暴露所有全局变量,比如用户输入__builtins__或其他敏感变量名,可能会访问到你不想暴露的内容,所以只适合自己测试、无外部用户输入的场景,生产环境绝对不推荐。

总结一下,优先用字典映射的方法,安全又灵活,还能清晰管理可访问的数组~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:38:38