Получение всех строк, следующих за конкретным символом python - PullRequest
0 голосов
/ 19 ноября 2018

Получение строк, следующих за символом '$', и сохранение их в виде строчных букв в списке. Например:

string = "apple $is a $tasty fruiit and $CHEAP"
['is', 'tasty', 'cheap']

Я пытался

string.lower()
lst  = []
lst.append(string.lower().split("$",1)[1:])
return lst

EDIT Он также должен заканчиваться перед числом или специальным символом string = "apple $ - это $ вкусный фрукт и $ CHEAP # chs" ['есть', 'вкусно', 'дешево'] где это не должно быть дешево # chs Может кто-нибудь помочь?

Ответы [ 4 ]

0 голосов
/ 19 ноября 2018

Вы можете использовать метод count () следующим образом:

starting_point = 0
Lst = []
for _ in range(string.count('$')):
    starting_point += string[starting_point+1:].index('$')+1
    Lst.append(string[starting_point:].split()[0].split('$')[1].lower())

и результат будет:

['is', 'tasty', 'cheap']
0 голосов
/ 19 ноября 2018

string.lower() возвращает новую строчную строку и ничего не делает с оригиналом.Один из возможных способов сделать это - разделить строку на пробелы и проверить, является ли слово startswith "$":

string = "apple $is a $tasty fruiit and $CHEAP"
result = [s[1:] for s in string.lower().split() if s.startswith('$')]

print(result)
# ['is', 'tatsy', 'cheap']
0 голосов
/ 19 ноября 2018
s1='apple $is a $tasty fruiit and $CHEAP'
lst=s1.split()
sample=[]
for i in lst:
    if '$' in i:
        sample.append(i[1:].lower())
print(sample)

Этот дает оп как ['is', 'tasty', 'cheap']. Regex прост, хотя.

0 голосов
/ 19 ноября 2018

Используйте регулярное выражение:

import re

s = "apple $is a $tasty fruiit and $CHEAP"

re.findall(r'(?<=\$)(.+?)\b', s.lower()))

Урожайность:

['is', 'tasty', 'cheap']
...