[Python] split
От: SergH Россия  
Дата: 06.03.09 12:45
Оценка:
Привет!

split без аргументов работает так:

>>> "1    2".split()
['1', '2']


С аргументом:

>>> "1    2".split(" ")
['1', '', '', '', '2']


Мне нужен первый вариант. Но ещё мне нужно указать второй аргумент -- количество разбиений.

>>> "1    2   3 4 5".split(" ")        # так работает неправильно
['1', '', '', '', '2', '', '', '3', '4', '5']
>>> "1    2   3 4 5".split()           # так правильно
['1', '2', '3', '4', '5']
>>> "1    2   3 4 5".split(maxsplit=2) # но не указать количество
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: split() takes no keyword arguments


Есть какой-то простой вариант?
Делай что должно, и будь что будет
Re: [Python] split
От: Гест Украина https://zverok.github.io
Дата: 06.03.09 12:52
Оценка: 54 (4) :)
Здравствуйте, SergH, Вы писали:

SH>split без аргументов работает так:


SH>
>>>> "1    2".split()
SH>['1', '2']
SH>


SH>С аргументом:


SH>
>>>> "1    2".split(" ")
SH>['1', '', '', '', '2']
SH>


SH>Мне нужен первый вариант. Но ещё мне нужно указать второй аргумент -- количество разбиений.


SH>
>>>> "1    2   3 4 5".split(" ")        # так работает неправильно
SH>['1', '', '', '', '2', '', '', '3', '4', '5']
>>>> "1    2   3 4 5".split()           # так правильно
SH>['1', '2', '3', '4', '5']
>>>> "1    2   3 4 5".split(maxsplit=2) # но не указать количество
SH>Traceback (most recent call last):
SH>  File "<stdin>", line 1, in <module>
SH>TypeError: split() takes no keyword arguments
SH>


SH>Есть какой-то простой вариант?


Python’а не знаю, Гугль знаю.

For example, ' 1 2 3 '.split() returns ['1', '2', '3'], and ' 1 2 3 '.split(None, 1) returns ['1', '2 3 '].

http://docs.python.org/library/stdtypes.html

Re[2]: [Python] split
От: SergH Россия  
Дата: 06.03.09 12:54
Оценка:
Здравствуйте, Гест, Вы писали:

Г>Python’а не знаю, Гугль знаю.

Г>

Г>For example, ' 1 2 3 '.split() returns ['1', '2', '3'], and ' 1 2 3 '.split(None, 1) returns ['1', '2 3 '].

Г>http://docs.python.org/library/stdtypes.html


Спасибо!
Делай что должно, и будь что будет
Re: [Python] split
От: haba_haba_haba Россия  
Дата: 06.03.09 13:01
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Привет!


SH>Мне нужен первый вариант. Но ещё мне нужно указать второй аргумент -- количество разбиений.


SH>
>>>> "1    2   3 4 5".split(" ")        # так работает неправильно
SH>['1', '', '', '', '2', '', '', '3', '4', '5']
>>>> "1    2   3 4 5".split()           # так правильно
SH>['1', '2', '3', '4', '5']
>>>> "1    2   3 4 5".split(maxsplit=2) # но не указать количество
SH>Traceback (most recent call last):
SH>  File "<stdin>", line 1, in <module>
SH>TypeError: split() takes no keyword arguments
SH>


SH>Есть какой-то простой вариант?



split так не умеет, скорее всего придется ручками:
[x for x in "1    2   3 4 5".split(' ') if x != '']
['1', '2', '3', '4', '5']
Re[2]: [Python] split
От: haba_haba_haba Россия  
Дата: 06.03.09 13:04
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

__>Здравствуйте, SergH, Вы писали:


SH>>Привет!



__>split так не умеет, скорее всего придется ручками:

__>
__>[x for x in "1    2   3 4 5".split(' ') if x != '']
__>['1', '2', '3', '4', '5']
__>



Пеплом голову посыпал. Можно использовать "1 2 3 4 5".split(None, 2)
Re[2]: [Python] split
От: SergH Россия  
Дата: 06.03.09 13:05
Оценка:
Здравствуйте, haba_haba_haba, Вы писали:

__>split так не умеет, скорее всего придется ручками:

__>
__>[x for x in "1    2   3 4 5".split(' ') if x != '']
__>['1', '2', '3', '4', '5']
__>


Руками и я могу. И хотелось бы не только пробелы, но и табуляции...
Но выше в теме уже объяснили
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.