【问题标题】:Python - Find variables that have a particular value [closed]Python - 查找具有特定值的变量[关闭]
【发布时间】:2020-04-13 05:22:08
【问题描述】:

我有 5 个变量,它们取 1 或 0。我试图找出这 5 个变量中的哪一个被设置为 1。

例如:

var_1 = 1 
var_2 = 1
var_3 = 0
var_4 = 1
var_5 = 0

我希望得到 var_1var_2var_4,因为它们等于 1。

【问题讨论】:

  • 你可以使用一个列表,然后遍历列表
  • 当然你不希望有这样的变量,但使用适当的数据结构
  • 你使用正确的数据结构她。使用列表或字典。

标签: python python-3.x variables


【解决方案1】:

试试这个:

for i in range(1,6):
    exec(f"if var_{i} == 1: print('var_{i}')")

打印出来:

var_1
var_2
var_4

或者按照切斯特的建议,使用:

[i for i,v in globals().items() if v==1]

locals()(如果循环遍历它可能会引发运行时错误):

[i for i,v in locals().items() if v == 1]

【讨论】:

  • 你可以使用globals()获取全局变量名试试这个[i for i,v in globals().items() if v==1]---->输出是['var_1', 'var_2', 'var_4']。对于局部变量,请使用 locals()
  • @JoshuaVarghese 我在之前的评论中添加了指向globals()locals() 文档的链接。
  • @Ch3steR 是否建议避免使用 exec()?
  • @JoshuaVarghese 大多数程序员尽量不使用execeval。这是最后的手段。看看这个answer
  • @JoshuaVarghese TBH 我不会使用globals()locals()。最好在此处使用合适的数据结构,例如列表或字典;)
猜你喜欢
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 2021-05-19
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多