Найти определенный элемент из списка, используя Python - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть список из 20000 продуктов с их описанием. Это показывает разнообразие продуктов

Я хочу написать код для поиска по определенному слову, скажем, «TAPA».и дать вывод всех TAPA

Я нашел это Найти определенное слово из списка в python , но он использует startswith, который находит только первый элемент, например:

 new = [x for x in df1['A'] if x.startswith('00320')]

 ## output ['00320671-01 Guide rail 25N/1660', '00320165S02 - Miniature rolling table']

Как мне найти для второй буквы, третьего или любого другого элемента

PS - список состоит из строк, целых чисел, чисел с плавающей запятой

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы можете использовать string.find(substring) для этой цели.Так что в вашем случае это должно работать:

new = [x for x in df1['A'] if x.find('00320') != -1] 

Метод find() возвращает самый низкий индекс найденной подстроки, иначе возвращается -1.

Чтобы узнать больше об использовании find()обратитесь к Geeksforgeeks.com - Python String |find ()

Редактировать 1: Как предлагает @Thierry в комментариях, более чистый способ сделать это:

new = [x for x in df1['A'] if '00320' in x]
0 голосов
/ 28 сентября 2018

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

new = df1['A'][df1['A'].astype(str).str.contains('00320')]['A'].tolist()

Преимущество pandas str.contains() возможно использование регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...