категории | RSS

Изюминка:

def split(*iterable): return iterable

--------------------------------
Примеры использования:
>>> split(*xrange(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> split(*'abcdef')
('a', 'b', 'c', 'd', 'e', 'f')
>>> from __future__ import generators
>>> def generator():
... for i in {'tru': 1, 'la': None, 'la': 'yeah'}.iterkeys():
... yield i
...
>>> split(*generator())
('tru', 'la', 'la')
>>>

Грамотному питонисту вполне достаточно.
Основной плюс в том, что получается кортеж.

--------------------------------
Моё почтение.
До новых встреч.

Virtuos86
2011-01-22T13:40:09Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 3

#3   Virtuos86    

Цитата: SiarZ
Любите танцевать с бубном?..



Обожаю.

А если это демонстрация разбора специфических аргументов функции (метода), то тут все ясно.

Пардон в чём же заключена их специфика, обычные позиционные аргументы.


P.S. Грамотному питонисту этого будет явно не достаточно ;)

Ну так их, грамотных питонистов, никто и не ограничивает. Вольному воля.


0 ответить

#3   SiarZ    

Любите танцевать с бубном?.. Что-то я не догнал цель примера. Если нужно итерационный объект привести к типу tuple, проще ведь сделать так:
>>> tuple(xrange(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> tuple(\'abcdef\')
(\'a\', \'b\', \'c\', \'d\', \'e\', \'f\')
>>> tuple(generator()) # generator из примера
(\'tru\', \'la\', \'la\')
А если это демонстрация разбора специфических аргументов функции (метода), то тут все ясно.
P.S. Грамотному питонисту этого будет явно не достаточно ;)


0 ответить

#3   Virtuos86    

Вдогонку ещё функция:

>>> def dict_(**keys):
... return keys
...
>>> print dict_(x=1, y=\'a\')
{\'y\': \'a\', \'x\': 1}
>>>

В Python 2.5 это делается с помощью конструктора типа dict:
dict(x=1)
.
Разумеется и:
dict([(\'x\', 1)])

никто не отменял.


0 ответить

Яндекс.Метрика