如果以后提取数组名(在Python中),如何使用数组元素值?

如果以后提取数组名(在Python中),如何使用数组元素值?,python,Python,例如: 案例1: arr1 = [1, 2, 3, 4, 5] print('arr1[0]') 输出为: 一, 案例2:(在同一程序中,找到数组名称后) 输出为: a 在案例1中,我们访问的是列表元素,但在案例2中,我们访问的是字符串元素。 问题是,我希望计算机理解这与案例1中定义的arr1相同。您可以使用eval: arr1 = [1, 2, 3, 4, 5] print(eval('arr1[0]')) new = 'arr1' print(eval('new[0]')) 然而

例如:

案例1:

arr1 = [1, 2, 3, 4, 5]

print('arr1[0]')
输出为:

一,

案例2:(在同一程序中,找到数组名称后)

输出为:

a

在案例1中,我们访问的是列表元素,但在案例2中,我们访问的是字符串元素。 问题是,我希望计算机理解这与案例1中定义的arr1相同。

您可以使用eval:

arr1 = [1, 2, 3, 4, 5]

print(eval('arr1[0]'))

new = 'arr1'

print(eval('new[0]'))
然而,第二种情况不会给你想要的答案。您需要使用eval两次:

arr1 = [1, 2, 3, 4, 5]

print(eval('arr1[0]'))

new = eval('arr1')

print(eval('new[0]'))
以下是您的解决方案:

arr1 = [1, 2, 3, 4, 5]

print('arr1[0]')

new = 'arr1'

print(eval(new)[0])

这将首先计算变量
new
的值,然后获得索引元素。

您的预期输出是什么?变量
new
中包含
字符串。修正你的代码中的输入错误,比如
new=arr1
@Sachin我希望第二种情况下的输出仅为1…也就是说,它应该是arr1[0]@GeekSambhu不,实际上,我想先转换成字符串,然后告诉计算机这个字符串名称与前面定义的数组相同。有什么办法吗?它不起作用……事实上,我在程序的后面(即案例2中)提取了数组的名称(即arr1),我想让计算机理解它与前面定义的arr1是相同的,并选择它的值……有什么办法吗?你所问的正是有效的。最后一个结果应该是
1
,并打印
1
。有什么不同于您预期的?谢谢…这是正确的方法…只是语法应该是eval(new)[0]…而不是eval(new[0])…这就是为什么我无法在我的编译器上实现的原因…但现在它工作得很好为什么您需要执行
eval(new)[0]
?新建已被评估:
new=eval('arr1')
<代码>eval(新)[0]
将是
eval(eval('arr1'))[0]
。这毫无意义。也许你忘了引号?我的建议是
eval('new[0])
,而不是
eval(new[0])
。作者希望在第二种情况下对字符串求值。您已将其更改为非字符串。@mhk,如果提供的解决方案解决了您的问题,请将其标记为正确。
arr1 = [1, 2, 3, 4, 5]

print('arr1[0]')

new = 'arr1'

print(eval(new)[0])