为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑的夜晚无繁华 2021-09-28 14:57:01
我需要遍历列表列表,仅在从另一个列表给出的特定索引范围内迭代,并仅获取这些索引中子列表的元素我创建了一个读取列表列表的列表理解: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 onlys = [ [ 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] ]但它不起作用,经过上述多次组合和许多小时的工作,我遇到了任何帮助,非常欢迎提出建议,谢谢!
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

您可能需要以下嵌套列表推导式,您可以在其中直接迭代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]]


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信