Получение индекса элементов в объекте серии, смотрящем вверх от другого объекта серии - PullRequest
0 голосов
/ 26 апреля 2020

Здесь series2 - это всегда подмножество series1. Я хочу найти индексы из серии 1 для элементов, которые присутствуют в серии 2.

series1= [11,22,3,4,5,33,7]
series2= [11,22,33]


c=[]
for i in series2:
    if i in series1:
        c.append(series1.index[i])
print(c)

Ожидаемый результат: [0,1,5] Но я получаю пустой список в выводе. Не могли бы вы подсказать здесь ошибку?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Вы можете использовать понимание списка с enumerate, определяя series2 как set, чтобы уменьшить сложность поиска:

series2= set([11,22,33])
[ix for ix,i in enumerate(series1) if i in series2]
# [0, 1, 5]

Согласно вашему подходу, есть пара неправильных вещей:

  • Вы должны выполнять итерации сначала над series1 и , а затем series2
  • list.index если функция, это не так subscribable. Вы должны использовать list.index(item)

Я бы посоветовал вам проверить документы на структуры данных, чтобы получить более четкое понимание по этим пунктам

0 голосов
/ 26 апреля 2020

вам нужно изменить c .append (series1.index [i]) на c .append (series1.index (i))

In [3]: series1= [11,22,3,4,5,33,7]
   ...: series2= [11,22,33]
   ...:
   ...:
   ...: c=[]
   ...: for i in series2:
   ...:     if i in series1:
   ...:         c.append(series1.index(i))
   ...: print(c)
[0, 1, 5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...