Способ повторяющегося zip-подобного единственного элемента для Python

1

Привет, ребята, я просто хочу знать, есть ли способ перебирать кортеж, который ведет себя как zip.

Например:

zipper = zip(['aye', 'bee'], ['ex', 'why'])
for x, y in zipper:
    print(x, y)
aye ex
bee why

tupl = 3, 2
for x, y in tupl:
    print(x, y)
# 'int' object is not iterable.

То, что я знал сейчас, это то, что его нельзя засечь:

tupl = zip(3, 2)
# zip argument #1 must support iteration

Я пытаюсь передать zipper в функцию, я также надеюсь передать кортеж или один набор zip.

def processthis(zipper):
    for x, y in zipper:
        # do something with x and y
  • 0
    каков твой желаемый результат?
Теги:

2 ответа

3
Лучший ответ

С петлей for x, y in tupl: вы ожидаете, что tupl будет последовательностью кортежей, а не кортежем.

Если вы хотите, чтобы ваш цикл обрабатывал только один кортеж, вам следует назначить tupl с помощью [(3, 2)] вместо (3, 2).

0

Отсутствуют скобки.

При передаче кортежа для работы его необходимо обернуть скобкой.

В твоем случае,

zip((3, 2), (4, 5))  # zipping 2 tuples

В противном случае zip увидит 3 и 2 как два позиционных аргумента.

  • 0
    ваш пример не показывает никаких скобок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню