【发布时间】:2017-10-04 06:38:15
【问题描述】:
我想使用一组索引来“寻址”列表列表。下面我提供了一些我正在寻找的行为的例子(听说是用语言表达,请看例子清楚)
假设我的列表是
lol = [[[0,1,2],[-1,2,4,5]],[[-2,-1,-3]],[[4,6,1],[1,7,-1],[-2,-4,1]]]
# print the length of some of the sublists
print len(lol) # prints 3
print len(lol[0]) #prints 2
print len(lol[0][1]) #prints 4
# print the value of some of the "leaves"
print lol[0][1][2] #prints 4
print lol[1][0][2] #prints -3
问题:我正在寻找一个函数,它采用上面示例中的索引并返回它在这些索引处找到的子列表的长度或在这些索引处找到的值;例如,
address = [1,0,2]
print someFunction(lol,address) # prints -3
address = [0,1]
print someFunction(lol,address) # prints 4
我曾尝试编写一个函数,但最终使用了大量条件语句来检查索引是否指向子列表或嵌套列表的“叶子”处的值之一。
【问题讨论】:
-
是的,我很有经验,对 python 的了解不多。我有这样做的功能,但它不适用于任何大小的嵌套列表,我觉得有一个非常简短和甜蜜的解决方案。
-
我不完全同意这个问题是重复的。首先,引用的问题是针对字典的。此外,当列出的索引到达列表中的“叶子”时,函数应该返回它找到的值,而不是长度。否则返回长度。我在 cmets 中有这个,但应该更清楚
-
编辑您的问题并添加所有相关信息,包括您解决此问题的尝试。就目前而言,您的问题很接近(太宽泛/不清楚)。
-
仅供参考,昨天有人问过这个问题,得到了很好的回应。我现在找不到它......我应该评论一下,所以它会在我的历史中。 :-(
-
@downshift: 不,我看到的那个专门处理任意数量的索引,以列表的形式呈现,用于从嵌套列表中提取。