Создайте список строк из строки, имеющей символ «+».Использование «+» для разделения списков - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть пример входной строки следующим образом:

med_str = 'Film-coated tablet + ALpha Chloro, Prolonged-release tablet + ALFU Dioxide'

Я хочу создать список строк, разделенных '+'.Ожидаемый ВЫХОД:

med_str = ['Film-coated tablet', 'ALpha Chloro'], ['Prolonged-release tablet', 'ALFU Dioxide']

Могут быть случаи, когда будет только одна разделенная '+' строка.Пример:

new_str = 'Tablet + DEFLAZo'

Ожидается OUTPUT:

new_str = ['Tablet', 'DEFLAZo']

Как мне сделать это с помощью if else в python, который должен позаботиться обо всех случаях и создать отдельный список разделенных строкчерез запятую, если в строке есть / не один или несколько элементов с '+' и разделенными запятой.

Ответы [ 3 ]

0 голосов
/ 25 февраля 2019

Используйте First Splinting (,), если он будет успешным, он разделит список на другой список с двумя объединенными строками, теперь просто разделяется с (+), чтобы получить оставшийся результат

med_str = 'Film-coated tablet + ALpha Chloro, Prolonged-release tablet + ALFU Dioxide'

final=[l.split("+") for l in med_str.split(",")]
print(final)
0 голосов
/ 25 февраля 2019

Предполагая, что ваша строка всегда имеет целое число пари, вот как это можно сделать:

med_str = 'Film-coated tablet + ALpha Chloro, Prolonged-release tablet + ALFU Dioxide'

cleaned = [s.strip() for s in med_str.replace('+',',').split(',')]
result = [[cleaned[i], cleaned[i+1]] for i in range(0, len(cleaned), 2)]
print(result)

Вывод:

[['Film-coated tablet', 'ALpha Chloro'], ['Prolonged-release tablet', 'ALFU Dioxide']]
0 голосов
/ 25 февраля 2019

Попробуйте это:

med_str = [i.split(" + ") for i in med_str.split(", ")] # Gives output as list of lists.

или

med_str = tuple(i.split(" + ") for i in med_str.split(", ")) # Gives output as tuple of lists.
...