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

Python中如何实现动态输入数量下的多变量相等性自动判断?

解决方案

你当前代码的问题是硬编码了3个变量的相等判断,且用globals()动态创建变量的写法不利于批量处理逻辑,修改方案如下:

优化后完整代码

print('Counts:')
count = int(input())
print('Lengths:')
nm_len = int(input())
numbers = []
print('Input numbers:')
numbers = [input().strip() for i in range(count)]  # 直接存字符串即可,避免长数字冗余转换
print('Numbers stored!')
print(numbers)
# 统一存储所有数字拆分后的数位列表,替代动态全局变量
digit_lists = []
for num_str in numbers:
    digit_lists.append([int(d) for d in num_str])

print('Same numbers:')
for j in range(nm_len):
    # 用all()动态判断所有数字的第j位是否相等,自动适配输入的数字数量
    if all(d_list[j] == digit_lists[0][j] for d_list in digit_lists):
        print(j+1, '. number is same')

修改说明

  • 取消了用globals()动态创建nm0/nm1这类变量的逻辑,改为将所有数字拆分后的数位列表统一存入digit_lists,方便批量遍历
  • 相等判断逻辑改用内置的all()函数实现,会自动遍历digit_lists中所有元素的第j位和第一位比较,只要输入的数字数量≥1都能正常运行,不需要硬编码变量名
  • 额外优化:输入数字时直接存字符串,省略了先转int再转str的冗余操作,也避免了极端长数字的处理风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:24:04