提问人:Eduardo Santos Vieira 提问时间:7/19/2023 最后编辑:Eduardo Santos Vieira 更新时间:7/20/2023 访问量:46
NameError: name 'qtd' is not defined when I try to make a if 出现
NameError: name 'qtd' is not defined appears when i try to make an if
问:
我正在尝试找出值在工作表中的位置,并将该值存储在变量中。
list = df['Quantidade de Cotas'].tolist()
qtd = 2136252.54442995
print(qtd)
变量的值为 2136252.54442995,因此定义
> 2136252.54442995
但是,如果我尝试执行一个 if
res = [i for i,j in enumerate(list) if j == qtd]
print(res)
出现此错误,表示未定义变量
> NameError: name 'qtd' is not defined
如果我运行完全相同的代码,但不是变量,而是输入她的值,则 if 有效并返回列表中的正确位置
list = df['Quantidade de Cotas'].tolist()
qtd = 2136252.54442995
print(qtd)
> 2136252.54442995
res = [i for i,j in enumerate(list) if j == 2136252.54442995]
print(res)
> [0]
有人可以帮我使这段代码以这种方式工作吗?
list = df['Quantidade de Cotas'].tolist()
qtd = 2136252.54442995
res = [i for i,j in enumerate(list) if j == qtd]
print(res)
> [0]
答:
0赞
Yousef khaled
7/20/2023
#1
import pandas as pd
df = pd.DataFrame({'Quantidade de Cotas': [10, 20, 10, 40, 50]})
list = df['Quantidade de Cotas'].tolist()
# qtd = 2136252.54442995
qtd = 10
res = [i for i,j in enumerate(list) if j == qtd]
print(res)
输出:[0, 2]
您的代码是正确的,但请确保在列表推导式中使用它之前进行定义。'qtd'
评论
qtd
未在上面代码中的任何位置定义?变量的值是 2136252.54442995,所以它被定义 - 它在哪里定义?