Python中如何动态实现多个nm_n系列变量对应位置元素的等值判断
你可以借助Python内置的all()函数实现这个需求,代码逻辑和原生链式判断完全一致,同时支持动态调整的变量数量,具体实现如下:
实现代码
# 1. 先将所有nm系列变量汇总到一个列表中,显式声明可读性更高 nm_collection = [nm_0, nm_1, nm_2, nm_3, nm_4, nm_5, nm_6, nm_7, nm_8, nm_9, nm_10, nm_11, nm_12, nm_13, nm_14, nm_15] for j in range(14): # 校验当前索引j位置的所有元素完全相等 if all(nm[j] == nm_collection[0][j] for nm in nm_collection): print(j)
可选简化写法
如果你不想手动录入16个变量到列表中,也可以通过变量名规则动态拉取全局变量,适合变量数量更多的场景:
# 动态生成变量集合,无需手动逐个填写 nm_collection = [globals()[f"nm_{i}"] for i in range(16)] for j in range(14): if all(nm[j] == nm_collection[0][j] for nm in nm_collection): print(j)
原理解释
all()是Python内置的短路求值函数,只要迭代器中存在任意一个False结果就会立刻停止校验返回False,执行效率和你手动写一长串链式判断完全一致- 后续如果需要调整nm系列变量的数量,只需要修改
nm_collection的生成规则即可,不需要修改判断逻辑,可维护性更强
内容的提问来源于stack exchange,提问作者user11994246
相关产品推荐
相关产品推荐

