Выполните итерацию списка по определенному диапазону индексов и получите элементы подсписков в этих индексах - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно перебрать список списков, только для определенного диапазона индексов, которые даны из другого списка, и получить элементы подсписков в этих индексах только

Я создал понимание списка, котороечитает список списков: common_a [] , затем мне нужно перебрать определенный диапазон индексов этого списка (диапазон - это диапазон индексов списка hit_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] ]

Но это не работает, после многих комбинацийвыше и много часов я застрял любую помощь, предложение очень приветствуется, спасибо!

1 Ответ

0 голосов
/ 28 декабря 2018

Вам, вероятно, понадобится следующее понимание вложенного списка , где вы напрямую итерируете по 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]]
...