如何通过字符串拼接查找对应变量并获取目标链接?
如何通过拼接的变量名获取对应变量值
原代码里photo = photo_ + result的写法行不通,因为photo_不是已定义的变量,而且这种方式没法直接通过拼接字符串得到的变量名去获取对应的值。下面提供两种实现方式:
推荐方式:使用字典存储映射关系
这是Python处理这类键值对应场景的最佳实践,结构清晰还好维护:
result = int(input()) # 用字典把数字和对应的图片链接关联起来 photo_links = { 1: "https://i.imgur.com/9SUZgxM.png", 2: "https://i.imgur.com/9SUZgxM.png", 3: "https://i.imgur.com/9SUZgxM.png", 4: "https://i.imgur.com/LhlpaUm.png", 5: "https://i.imgur.com/vMictIO.png" } # 根据输入的数字直接取链接,第二个参数是找不到时的默认值(可选) photo = photo_links.get(result, "未找到对应链接") print(photo)
当输入5时,会直接返回https://i.imgur.com/vMictIO.png,完全符合需求。
直接通过变量名查找(不推荐)
如果一定要按“拼接变量名找变量”的思路来实现,可以用globals()函数获取全局命名空间中的变量:
result = int(input()) photo_1 = "https://i.imgur.com/9SUZgxM.png" photo_2 = "https://i.imgur.com/9SUZgxM.png" photo_3 = "https://i.imgur.com/9SUZgxM.png" photo_4 = "https://i.imgur.com/LhlpaUm.png" photo_5 = "https://i.imgur.com/vMictIO.png" # 拼接出目标变量的名字 target_var = f"photo_{result}" # 从全局命名空间中获取变量,同样可以加默认值 photo = globals().get(target_var, "未找到对应链接") print(photo)
这种方法虽然能实现需求,但不建议在实际项目中使用——直接操作命名空间容易出现变量名拼写错误、意外修改全局变量等问题,代码可读性和可维护性都很差。
内容的提问来源于stack exchange,提问作者denverskill
相关产品推荐
相关产品推荐

