Несколько расщеплений на одной строке в Python - PullRequest
2 голосов
/ 01 июля 2011

Я хотел бы знать, есть ли более компактный (или Pythonic) способ сделать несколько разбиений некоторой входной строки. Сейчас я занимаюсь:

[a,bc,de] = 'a,b:c,d/e'.split(',')
[b,c] = bc.split(':')
[d,e] = de.split('/')

Ответы [ 2 ]

8 голосов
/ 01 июля 2011

Я бы использовал библиотеку регулярных выражений. Вам не нужно использовать списки для распаковки, вы можете использовать кортежи, как показано ниже.

import re
regex = re.compile(r'[,:/]')
a, b, c, d, e = regex.split('a,b:c,d/e')
1 голос
/ 01 июля 2011

Вероятно, вам лучше использовать метод разбиения регулярных выражений. Не делайте этого, это будет безумно медленно, но просто добавьте ответ:

a,b,c,d,e = flatten( (x.split(',') for x in y.split(':')) for y in z.split('/')  )

(выравнивание влево как упражнение для читателя (см. выравнивание ))

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