Как разделить несколько символов в списке в Python 3 - PullRequest
0 голосов
/ 29 ноября 2018

Мне нужно разделить этот список:

1 2 3 |4 5 6 |  7  8

и сделать его следующим:

7 8 4 5 6 1 2 3

До сих пор я использовал только функцию split (), но она разбивает только"|"и я получаю это ['1 2 3', '4 5 6', '7 8'].Поэтому мой вопрос заключается в том, как разделить пробелы (их может быть больше 1).

Ответы [ 4 ]

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

Вы можете попробовать это

a = "1 2 3 |4 5 6 |  7  8"
print([int(j) for i in a.split("|")[::-1] for j in i.split(" ") if len(j) != 0])

это будет вывод

[7, 8, 4, 5, 6, 1, 2, 3]
0 голосов
/ 29 ноября 2018

Вы можете разделить элементы в списке, возвращенном первым разделением, снова в выражении генератора:

s = '1 2 3 |4 5 6 | 7 8'
print(' '.join(i for t in s.split('|')[::-1] for i in t.split()))

Это выводит:

7 8 4 5 6 1 2 3
0 голосов
/ 29 ноября 2018

Вы можете попробовать это:

'1 2 3 |4 5 6 |  7  8'.replace('|', ' ').split()

Вывод будет:

['1', '2', '3', '4', '5', '6', '7', '8']

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

Учитывая то, что вы пытаетесь сделать, разделив больше, чем просто "|"не требуется, так как будет работать следующее:

mystr = "1 2 3|4 5 6| 7 8"
newstr = "".join(mystr.split("|").reverse())

Чтобы ответить, как разбить также на пробелы

mylist = []
for chunk in mystr.split("|"):
    mylist.extend(chunk.split())
...