@Panda_Code
Сognizer

Как получить список без указанных елементов?

Ребят, всем привет!

Есть строка
"1. 4x Apples. \n2. 5x Bananas \n3. 6x Oranges\n4. 3x Pears\n",

мне надо получить список
["4x Apples.", "5x Bananas",  "6x Oranges", "3x Pears"]


Я написал следующую функцию:

a = "1. 4x Apples. \n2. 5x Bananas \n3. 6x Oranges\n4. 3x Pears\n"
b = "1. Ice cream \n2. Rice \n3. Flour\n4. Cola\n"


def to_list(string):
    """String to list"""
    return string.replace('\n', '').replace('1.',).split()


y = to_list(a)
x = to_list(b)


Немного, не то получается!
  • Вопрос задан
  • 120 просмотров
Решения вопроса 3
solotony
@solotony
покоряю пик Балмера
def x(x):
    return list(filter(None, ['.'.join(y.split('.')[1:]).strip() for y in x.split('\n')]))

x(a)
['4x Apples.', '5x Bananas', '6x Oranges', '3x Pears']
x(b)
['Ice cream', 'Rice', 'Flour', 'Cola']
Ответ написан
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
import re

foo = '1. 4x Apples. \n2. 5x Bananas \n3. 6x Oranges\n4. 3x Pears\n'
bar = '1. Ice cream \n2. Rice \n3. Flour\n4. Cola\n'

def to_list(s):
    return re.findall(r'\d+\.\s(.+?)(?=\s?\n)', s)

to_list(foo)
# ['4x Apples.', '5x Bananas', '6x Oranges', '3x Pears']
to_list(bar)
# ['Ice cream', 'Rice', 'Flour', 'Cola']
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
import re

a = "1. 4x Apples. \n2. 5x Bananas \n3. 6x Oranges\n4. 3x Pears\n"
b = "1. Ice cream \n2. Rice \n3. Flour\n4. Cola\n"


def to_list(data):
    return [x.strip() for x in re.findall('\d+\.(.*)\n', data)]

y = to_list(a)
x = to_list(b)

print(y)
print(x)


['4x Apples.', '5x Bananas', '6x Oranges', '3x Pears']
['Ice cream', 'Rice', 'Flour', 'Cola']
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@101-s
как вариант, без регулярных выражений:
def to_list(string):
    """String to list"""
    return [phrase[2:].strip() for phrase in string.split("\n")][:-1]

y = to_list(a)
x = to_list(b)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы