如何解决在列表中查找变量名称并匹配变量
我有一个列表:
myList = [2,'+',3,'pi']
我还有一个变量pi
,它等于3.14
。我想在'pi'
中使用字符串myList
,并将其与变量pi
匹配,所以当我执行代码以编译列表时,而不是输出pi
,我希望它输出3.14
或变量pi
的任何值。不好意思,很抱歉。有什么方法可以做到吗?
我尝试将'pi'
更改为pi
,但这只是一个错误,因为pi
不是整数。
解决方法
尝试以下操作:
import math
CONSTANTS = {'pi': math.pi}
myList = [2,'+',3,'pi']
for e in myList:
print(CONSTANTS.get(e,e))
我们正在创建字典CONSTANTS
,其中您使用数字pi
的名称作为键来检索其值为math.PI
的字典。然后,您遍历myList
,您说的是,如果在这种情况下列表中的每个元素都与键e
相关联,那么请给我与之相关的value
键并打印。否则,只需打印该值即可。
要将列表从[2,'pi']
转换为[2,3.1415...]
,请执行以下操作:
CONSTANTS = {'pi': math.pi}
newList = [CONSTANTS.get(e,e) for e in myList]
,
使用三元运算符的列表理解
import math
myList = [2,'pi']
myList = [x if x != 'pi' else math.pi for x in myList]
print(myList)
说明
在python中,可以使用其他列表创建列表,这称为列表理解。
[f(x) for x in list]
f(x) - some function of x
for x in list - passing over each element in the list
Wrapped in square brackets to represent a new list being created.
此外,python的三元运算符看起来有些愚蠢:
example = x if x != 'pi' else math.pi
这是一个表达式(在python中,这意味着需要对其进行评估并具有一个 值),如果x不是'pi',则示例将等于x,否则它将等于math.pi。等效于:
if x != 'pi':
example = x
else:
example = math.pi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。