为了账号安全,请及时绑定邮箱和手机立即绑定

在列表中查找变量名并匹配到变量

在列表中查找变量名并匹配到变量

蝴蝶不菲 2023-05-23 14:47:20
我有一个清单:myList = [2, '+', 3, 'pi']我还有一个变量pi,它等于3.14。'pi'我想获取字符串myList,并将其与变量匹配pi,所以当我执行代码来编译列表时,pi我希望它输出,而不是输出3.14,或者变量pi的任何值。对不起,如果它令人困惑。有什么方法可以做到这一点?我试过更改'pi'为pi,但这只是给出了一个错误,因为它pi不是一个整数。
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

尝试以下操作:


import math


CONSTANTS = {'pi': math.pi}

myList = [2, '+', 3, 'pi']


for e in myList:

    print(CONSTANTS.get(e, e))

我们正在创建一个字典CONSTANTS,您在其中使用数字的名称pi作为键来检索其值,即math.PI。然后你遍历,你是说,如果在这种情况下列表中的每个元素myList都有一个与键关联的值,那么给我与该键关联的值并打印它。否则,只需打印该值。evalue


要将列表从 转换[2, '+', 3, 'pi']为[2, '+', 3, 3.1415...],请执行以下操作:


CONSTANTS = {'pi': math.pi}

newList = [CONSTANTS.get(e, e) for e in myList]


查看完整回答
反对 回复 2023-05-23
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

使用三元运算符的列表理解

import math


myList = [2, '+', 3, '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',example 将等于 x,否则它将等于 math.pi。它相当于:


if x != 'pi':

    example = x

else:

    example = math.pi


查看完整回答
反对 回复 2023-05-23
  • 2 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信