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

如何简化Python列表的取值操作?替代多elif的方案

解决方案:将列表转换为字典简化取值

错误原因

你触发的TypeError是因为my_array是列表类型,列表仅支持整数索引,无法用字符串(如"var1")直接定位元素,所以你的尝试写法不成立。

最优解决方法:转换为字典

Python的字典(dict)天然支持字符串作为键来取值,正好匹配你的数据结构(每个子列表是[键, 值]的形式)。只需要一行代码就能完成转换:

my_array = [
    ['var1', 1], ['var2', 2], ['var3', 3], ['var4', 4], ['var5', 5]
]
# 将嵌套列表转换为字典
my_dict = dict(my_array)

之后取值就非常简洁,完全不需要循环和elif:

var_a = my_dict["var1"]
var_b = my_dict["var2"]
var_c = my_dict["var3"]
var_d = my_dict["var4"]
var_e = my_dict["var5"]

print(var_a, var_b, var_c, var_d, var_e)
# 输出:1 2 3 4 5

其他替代方法(无需全量转换)

如果只是需要单独取出某个值,不想提前转换整个字典,可以用生成器表达式快速定位:

# 取出"var3"对应的值
var3_value = next(item[1] for item in my_array if item[0] == "var3")
print(var3_value)
# 输出:3

这种方法适合只需要获取少数几个值的场景,避免不必要的字典转换开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:50:26