LINUX.ORG.RU

python2, как получить первый вход итерируемого объекта

 


0

1

понятно, что можно так :)

for n in it:
    obj = n
    break
понятно, что если есть индексы, можно так:
obj = it[0]
а если индексов нет, а гонять for - тупо, то как это делается? давно не брал в руки шашек, а сходу сообразить не могу :(

★★★★★

А можно пример, когда это нет индекса и нужно получить _первый_ элемент?

conformist ★★★
()
Ответ на: комментарий от aedeph_

не работает даже на списке:

 a = [1,2,3]
>>> next(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list object is not an iterator

а for - работает

>>> a = [1,2,3]
>>> for n in a:
...     obj = n
...     break
... 
>>> obj
1

нужен полный аналог for

buratino ★★★★★
() автор топика

благодарность объявляется

ЮЗЕРУ aedeph_

спасибо, то что нужно :)

buratino ★★★★★
() автор топика
Ответ на: комментарий от aedeph_

я по-отдельности их пробовал, а внутрь засунуть не догадался :)

buratino ★★★★★
() автор топика
Ответ на: комментарий от buratino

Еще можно toolz.first(...), что то же самое внутри.

anonymous
()
Ответ на: комментарий от Virtuos86

я пробовал явно вызвать iter(obj). и оно мне вернуло не значение, а что-то там... дальше я не разбирался, а пошёл спросил на LORе :)

buratino ★★★★★
() автор топика
Ответ на: комментарий от buratino

Что-то там... Как бы выяснить что там довольно просто:

>>> help(iter)
Help on built-in function iter in module __builtin__:

iter(...)
    iter(collection) -> iterator
    iter(callable, sentinel) -> iterator

    Get an iterator from an object.  In the first form, the argument must
    supply its own iterator, or be a sequence.
    In the second form, the callable is called until it returns the sentinel.

>>>

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.