Python如何打印列表中存储的变量名而非变量对应的取值
实现方案
首先要明确:你当前的写法里,objects 存储的是所有变量对应的百分比取值,本身不包含变量名信息,没法直接从 objects 中提取变量名。推荐你选择以下两种方案实现需求:
方案1:改用字典存储(最推荐)
直接用键值对存储姓名和对应分数,后续取姓名、取分数、遍历都非常方便,也不会因为重值导致匹配错误:
# 定义字典,键为姓名字符串,值为对应分数 student_info = { "ALI_ELDIYAB": "80.80%", "BILAL_HASSAN": "78%", "DANIA_RAHMANI": "71.20%", "DANIEL_AIGBE": "78%", "HAMD_ALFARES": "72%", "KHALED_AL_SHAIBANI": "74%", "LINA_ISSA": "70%", "LUMA_ABDELAZIZ": "78%", "MARIAM_BASHER": "44%", "MOHAMMED_BINDAGHER": "74.80%", "NADAY_ALHAMMALI": "77.60%", "NISRIIN_ABDI": "67.60%", "OMAR_HAFEZ": "66.80%", "OMAR_SLEIMAN": "83.20%", "OMAR_MOUSTAFA": "77.60%", "RAHAF_IBRAHIM": "68.80%", "RASIL_ALSAKKA": "82%", "SETYA_GHAHREMANI": "82%", "SHARMAAKE_HANDBO": "59.20%", "YAHYA_ABDELBAGI": "64%", "YOUSIF_KASHWAN": "76.40%" } # 打印所有姓名 print(student_info.keys()) # 遍历打印姓名和对应分数示例 for name, score in student_info.items(): print(f"姓名:{name},分数:{score}")
方案2:全局变量匹配(不推荐,仅作参考)
如果必须保留你现有的变量定义,可以通过全局变量表匹配取值找对应变量名,但该方案在多个变量取值相同时会出现匹配错误(你的现有代码里就有多个78%、82%的重复取值,这种场景下不适用):
# 你原有的赋值代码 objects = [ALI_ELDIYAB,BILAL_HASSAN,DANIA_RAHMANI,DANIEL_AIGBE,HAMD_ALFARES,KHALED_AL_SHAIBANI,LINA_ISSA,LUMA_ABDELAZIZ,MARIAM_BASHER,MOHAMMED_BINDAGHER,NADAY_ALHAMMALI,NISRIIN_ABDI,OMAR_HAFEZ,OMAR_SLEIMAN,OMAR_MOUSTAFA,RAHAF_IBRAHIM,RASIL_ALSAKKA,SETYA_GHAHREMANI,SHARMAAKE_HANDBO,YAHYA_ABDELBAGI,YOUSIF_KASHWAN] = ["80.80%","78%","71.20%","78%","72%","74%","70%","78%","44%","74.80%","77.60%","67.60%","66.80%","83.20%","77.60%","68.80%","82%","82%","59.20%","64%","76.40%"] def get_var_name(value): for k, v in globals().items(): if v == value: return k return None # 打印匹配到的变量名,重复取值只会返回第一个匹配到的变量名 for val in objects: print(get_var_name(val))
内容的提问来源于stack exchange,提问作者Yarob Alhaj
相关产品推荐
相关产品推荐

