【问题标题】:python: check if variable is defined and return its value or return other valuepython:检查变量是否已定义并返回其值或返回其他值
【发布时间】:2011-05-29 19:42:20
【问题描述】:

我正在尝试使用此代码

result = arr['key1'] or arr['key2'] or arr['key3']

解释: 我想从任何一个或 dict 键的结果中获得价值.. 键的可用性取决于环境。这不是关于 None .. 可能只定义了一个 arr 键...

那么有没有像 is_defined() 这样的函数或方法

我们如何在 python 中做到这一点??

更新

我在这里遇到了一个新问题.. 代码 1:

try:
   urlParams += "%s=%s&"%(val['name'], data.get(val['name'], serverInfo_D.get(val['name'])))
except KeyError:
   print "expected parameter not provided - "+val["name"]+" is missing"
   exit(0)

代码 2:

try:
   urlParams += "%s=%s&"%(val['name'], data.get(val['name'], serverInfo_D[val['name']]))
except KeyError:
   print "expected parameter not provided - "+val["name"]+" is missing"
   exit(0)

查看 serverInfo_D[val['name']] 和 serverInfo_D.get(val['name']) 的差异 代码 2 失败,但代码 1 有效

数据

serverInfo_D:{'user': 'usr', 'pass': 'pass'} 
data: {'par1': 9995, 'extraparam1': 22}
val: {'par1','user','pass','extraparam1'}

for data dict .. 和 for 循环中迭代 val 的所有代码引发异常

【问题讨论】:

    标签: python exists


    【解决方案1】:
    result = arr.get('key1', arr.get('key2', arr.get('key3')))
    

    【讨论】:

    • @Mark: 那么它将需要None。这似乎是 goutham 想要的。
    • @chris 这正是我想要的......只需返回一个值。感谢您的解决方案
    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 2021-03-26
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    相关资源
    最近更新 更多