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

如何遍历dia_1至dia_18列表并检查元素1是否存在

解决方法

方法一:通过全局变量字典获取对应列表

你可以用Python的globals()函数(如果变量是全局的)来获取变量字典,通过字符串拼接的键拿到对应的列表。修改后的代码如下:

dia_1 = [0]
dia_2 = [0, 0]
dia_3 = [0, 0, 0]
dia_4 = [0, 0, 0, 0]
dia_5 = [0, 0, 1, 0, 0]
dia_6 = [0, 0, 0, 0,]
dia_7 = [0, 0, 0]
dia_8 = [0, 0]
dia_9 = [0]

dia_10 = [0]
dia_11 = [0, 0]
dia_12 = [0, 0, 0]
dia_13 = [0, 0, 0, 0]
dia_14 = [0, 0, 1, 0, 0]
dia_15 = [0, 0, 0, 0,]
dia_16 = [0, 0, 0]
dia_17 = [0, 0]
dia_18 = [0]

for i in range(1, 19):  # range是左闭右开,所以写19才能覆盖1到18
    current_list = globals()[f'dia_{i}']
    if 1 in current_list:
        print(f'dia_{i} 里有1: yes')
    else:
        print(f'dia_{i} 里没有1: no')

方法二:用字典存储列表(更推荐)

零散的变量不好管理,把所有列表放到字典里是更规范的写法,后续维护和操作都更方便:

dia_dict = {
    1: [0],
    2: [0, 0],
    3: [0, 0, 0],
    4: [0, 0, 0, 0],
    5: [0, 0, 1, 0, 0],
    6: [0, 0, 0, 0],
    7: [0, 0, 0],
    8: [0, 0],
    9: [0],
    10: [0],
    11: [0, 0],
    12: [0, 0, 0],
    13: [0, 0, 0, 0],
    14: [0, 0, 1, 0, 0],
    15: [0, 0, 0, 0],
    16: [0, 0, 0],
    17: [0, 0],
    18: [0]
}

for num, lst in dia_dict.items():
    if 1 in lst:
        print(f'dia_{num} 里有1: yes')
    else:
        print(f'dia_{num} 里没有1: no')

两种方法都能实现你的需求,第二种方法更符合Python代码规范,避免了依赖全局变量的潜在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:19:24