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

Python如何根据输入姓名获取嵌套数组中对应的子数组?

解决方法:匹配名字并输出对应子数组

嘿,我来帮你搞定这个问题~你当前的代码之所以没达到预期,是因为array里的每个元素都是列表,而你用n in array是在检查输入的字符串(比如'eric')是不是整个子列表,这肯定匹配不上呀!接下来给你两种简单的修改方案:

方案一:遍历数组查找匹配项

这种方法适合数据量不大的情况,逻辑直观:

array = [['eric', '12', '12'], ['ted', '12', '102']]
n = input("name\n>>")

# 逐个检查每个子列表的第一个元素(名字)
for person in array:
    if person[0] == n:
        print(person)
        break  # 找到匹配项就停止遍历,提升效率
else:
    # 遍历完所有子列表都没找到时输出错误
    print("error")

当你输入'eric'时,会匹配到array[0]并打印['eric', '12', '12'];输入'ted'时会打印['ted', '12', '102'],完美符合你的需求~

方案二:转换为字典(高效查找)

如果你的数据量比较大,用字典来存储会让查找速度更快,代码也更简洁:

array = [['eric', '12', '12'], ['ted', '12', '102']]
# 把二维数组转换成「名字: 对应子列表」的字典
name_map = {item[0]: item for item in array}
n = input("name\n>>")

# 用get方法获取结果,找不到时返回默认值"error"
print(name_map.get(n, "error"))

这个方法的原理是先把每个子列表的第一个元素(名字)作为字典的键,整个子列表作为值。之后用get方法可以一步完成查找和默认值返回,非常高效!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:12:36