Как удалить спецсимвол из списка строк и разбить его на отдельные элементы - PullRequest
2 голосов
/ 21 февраля 2020

У меня есть список таких строк:

list = ["A", "B", "C", "E", "0,2344 | 0,234 | 0,2345 | 0,265 | 0.2235 |"]

Ожидаемый результат должен быть:

list = ["A", "B", "C", "E", "0,2344", "0,234", "0,2345", "0,265", "0.2235"]

Может кто-нибудь предложить мне несколько способов сделать это?

Ответы [ 6 ]

3 голосов
/ 21 февраля 2020

Из того, что я понял из комментария. Вы можете попробовать это.

list_a=[j.strip() for i in list_a for j in i.split('|')] 

Не имеет отношения к вопросу: Не используйте встроенные / ключевые слова в качестве имен переменных.

1 голос
/ 21 февраля 2020
ans= ''.join(i for i in '["A", "B", "C", "E", "0,2344 | 0,234 | 0,2345 | 0,265 | 0.2235 |"]'. replace('|','","'));
ans= ''.join(i for i in ans. replace(',""',''))
print(ans.replace(' ',''))

код выше дает ожидаемый результат, как написано ниже.

["A","B","C","E","0,2344","0,234","0,2345","0,265","0.2235"]
1 голос
/ 21 февраля 2020

Вы можете сделать что-то вроде этого,

lst = ["A", "B", "C", "E", "0,2344 | 0,234 | 0,2345 | 0,265 | 0.2235 |"]

output = []
for item in lst:
    if item.find("|"):
        values = item.replace("|", "").strip().split()
        for value in values:
            output.append(value.strip())
    else:
        output.append(item)

print(output)

Или лучше вы можете использовать понимание списка вот так,

lst =[subitem.strip() for item in lst for subitem in item.split('|') if subitem]
print(lst)

И вывод будет,

['A', 'B', 'C', 'E', '0,2344', '0,234', '0,2345', '0,265', '0.2235']

надеюсь, это поможет!

1 голос
/ 21 февраля 2020

вам нужно:

new_list = []
for l in list1:
    y = l.split("|") 
    new_list.extend([j.strip() for j in y if j])

print(new_list)

Вывод:

['A', 'B', 'C', 'E', '0,2344', '0,234', '0,2345', '0,265', '0.2235']
0 голосов
/ 21 февраля 2020
I want to remove | character in the last element of list 1 and split last element of list 1 into last 5 elements of list 2 

попробуйте

result = list[0:-1]+list[-1].replace(' ', '').strip('|').split('|')
0 голосов
/ 21 февраля 2020

Пожалуйста, сделайте следующее:

   list = ["A", "B", "C", "E", "0,2344 | 0,234 | 0,2345 | 0,265 | 0.2235 |"]

   new_list = new_list = [ch.strip() for word in list for ch in word.split('|')]
   new_list.remove('')

Спасибо

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