猿问

在特定范围的索引上迭代列表并获取这些索引中子列表的元素

我需要遍历列表列表,仅在从另一个列表给出的特定索引范围内迭代,并仅获取这些索引中子列表的元素


我创建了一个读取列表列表的列表理解:common_a[ ]然后我需要迭代这个列表的特定索引范围(该范围是hits_idx1[ ]列表的索引范围),以便进一步使用这些索引下的子列表的内容:


hits_idx1 = [5,4] # use the indexes of this list as a range [0,1]

common_a = [[23],[3,8,2,5],[2,1]] # iterate on the [0,1] range indexes only



s = [ [ data_db[0][x] for x in common_a[] ],

      [ data_db[2][x] for x in common_a[] ],

      [ ....                              ]  ] 

我无法理解如何迭代特定范围的索引,我需要类似以下内容:


[ data_db[0][x] for x in common_a[ [index for index, value in enumerate(hit_idx1)] ]

但它不起作用,因为这会生成一个列表,所以我尝试遍历生成的索引列表:


[ data_db[0][x] for x in common_a[y] for y in [0,1] ]

但它不起作用,经过上述多次组合和许多小时的工作,我遇到了任何帮助,非常欢迎提出建议,谢谢!


慕尼黑的夜晚无繁华
浏览 180回答 1
1回答

郎朗坤

您可能需要以下嵌套列表推导式,您可以在其中直接迭代hits_idx1以获取索引,然后将其传递common_a给以获取相应索引处的子列表。然后迭代该子列表以在其中使用其元素data_db在无法访问样本输入和所需输出的情况下,现在一切都是沉思。试试下面的代码,并在评论中让我知道它是否有效以及是否需要进行任何更改。hits_idx1 = [5,4] # use the indexes of this list as a range [0,1]common_a = [[23],[3,8,2,5],[2,1]]desired = [data_db[0][x] for ind in hit_idx1 for x in common_a[ind]]
随时随地看视频慕课网APP

相关分类

Python
我要回答