如何使用python中的变量访问列表的元素

时间:2017-07-07 15:31:12

标签: python list

鉴于我有一个多维列表的目标位置。即存储在变量中的索引。

list = [[1,2,3,4,5],
        [10,20,30,40,50],
        [5,4,3,2,1],
        [50,40,30,20,10]]
target = [3][4]

如何访问列表[目标]?

  >>> list[target]
    10

2 个答案:

答案 0 :(得分:4)

如果target作为[3, 4, 1]等索引列表提供,则可以使用reduce

from functools import reduce # not required in py2

result = reduce(list.__getitem__, target, my_list)

请注意,如果您使用list作为变量的名称,则无法使用此功能。切勿对变量使用builtins的名称。将其命名为my_list或更具描述性的内容。

答案 1 :(得分:1)

你不能直接这样做,因为list [variable]将成为列表的一个条目;变量必须是索引。

所以你需要的是获得列表[变量] [变量] [变量]

的一些方法

遗憾的是,这不可能用一个简单的变量来完成,即使它真的很酷。

执行此操作的最佳方法是创建一个递归函数,它将获取列表target=[3,4,1]并返回值,如下所示。

def target_value(my_list, place):
    if len(place) == 1:
        return my_list[place[0]]
    return target_value(my_list[place[0]],place[1:])

然后你将其称为普通函数,将列表和目标(target = [3,4,1])作为参数。