Привет, ребята, я просто хочу знать, есть ли способ перебирать кортеж, который ведет себя как 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
С петлей for x, y in tupl:
вы ожидаете, что tupl
будет последовательностью кортежей, а не кортежем.
Если вы хотите, чтобы ваш цикл обрабатывал только один кортеж, вам следует назначить tupl
с помощью [(3, 2)]
вместо (3, 2)
.
Отсутствуют скобки.
При передаче кортежа для работы его необходимо обернуть скобкой.
В твоем случае,
zip((3, 2), (4, 5)) # zipping 2 tuples
В противном случае zip увидит 3 и 2 как два позиционных аргумента.