鉴于我有一个多维列表的目标位置。即存储在变量中的索引。
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
答案 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]
)作为参数。