gpt4 book ai didi

python - 使用存储在另一个列表中的索引访问列表中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:11 24 4
gpt4 key购买 nike

我正在寻找一种使用存储在另一个列表中的索引来访问列表中元素的通用方法。

例如,我有列表:

b = [[[[[0.2], [3]], [[4.5], [78]], [[1.3], [0.23]], [[6.], [9.15]]],
[[[3.1], [44]], [[1.], [66]], [[0.18], [2.3]], [[10], [7.5]]],
[[[3], [4.]], [[12.3], [12]], [[7.8], [3.7]], [[1.2], [2.1]]]]]

我需要访问其索引存储在的元素:

c = [0, 0, 0, 1, 0]

即:

3

这行不通:

b[c[0]][c[1]][c[2]][c[3]][c[4]]

因为 b 的形状随着我的代码的每次运行而改变,这就是为什么我需要一种通用方式来使用 c 来访问b 中的元素。

类似于:

b[*c]

我敢打赌会奏效,但事实并非如此。

最佳答案

使用reduce (或 functools.reduce 与 Python 3 向前兼容)

>>> def getitems(data, keys):
... return reduce(lambda a, b: a[b], [data]+keys)
...
>>> getitems(b, c)
3

这假设 keys 始终是一个列表。

关于python - 使用存储在另一个列表中的索引访问列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29290768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com