Найти - Пользователи
Полная версия: Получение индексов строк, содержащих слово
Начало » Python для новичков » Получение индексов строк, содержащих слово
1
ewro
Есть список:
 a = ['1',['2', '5', '3'],'3','3','4','5','4','3','2','1']
Нужно найти индексы этого списка в которых содержится “2”.
Делаю так:
 import pandas as pd
a = ['1',['2', '5', '3'],'3','3','4','5','4','3','2','1']
aa = pd.DataFrame(a)
dx= aa.index[aa[0] == '2'].tolist()
print(dx)
Находит только 8(восьмой) индекс.
Как заставить найти индекс “2 5 3”
doza_and
:) Например корректно так:
print([1,8])

Вы недостаточно четко поставили задачу путем приведения одного примера. Для этого примера мой рецепт работает. Но неясно что еще там у вас может быть.
Какие из этих примеров подходят под ваше определение “содержится”?

 "325"
2
"3-1"
[["2"]]
["5","2"]
{"2":"3"}
{"3":"2"}
T_some_class(2)
"Жили у бабуси два веселых гуся."
....

От этого зависит решение задачи.

На мой взгляд в данном случае глупо совать в список разнородные элементы.
ewro
В принципе нужно вот что.
Имеется список:
“маша мыла”
“раму сама”
“но маша”
“сама не”
“мыла раму”
Требуется найти индексы строк в которых встречается слово “маша”, т.е.
 Index = [0, 2]
py.user.next
  
>>> a = ['1', ['2',  '5',  '3'], '3', '3', '4', '5', '4', '3', '2', '1']
>>> out = [index for index, value in enumerate(a) if '2' in value]
>>> out
[1, 8]
>>>
ewro
py.user.next, Спасибо! Как из пушки!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB