如果以后提取数组名(在Python中),如何使用数组元素值?
例如: 案例1:如果以后提取数组名(在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]')) 然而
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])