Я понимаю zip()
функции используются для построения списка кортежей, как это:Returing списков ключей кортежа и значение
x = ['a', 'b', 'c']
y = ['x', 'y', 'z', 'l']
lstTupA = zip(x,y)
lstTupA
будет [('a', 'x'), ('b', 'y'), ('c', 'z')]
.
lstA, lstB = zip(*lstTupA)
Вышеописанная операция извлекает keys
в списке кортежей к lstA
и values
в списке кортежей к lstB
.
lstA
был ('a', 'b', 'c')
и lstB
был ('x', 'y', 'z')
.
Мой запрос: Почему lstA
и lstB
кортежи вместо списков? a
, b
и c
являются однородными, и поэтому x
, y
и z
. Не логично группировать их как кортежи, не так ли?
В идеале lstA, lstB = zip(*lstTupA)
должны были назначены ['a', 'b', 'c']
к lstA
и ['x', 'y', 'z']
в lstB
(списки) правильно?
Кто-то, пожалуйста, уточните!
Спасибо.
«Почему кортежи возвращаются в кортеж?» - Немного странный вопрос. Я думаю, что вы, возможно, тот, кто нуждается в разъяснении. – MattH
'zip' всегда возвращает список кортежей, в этом нет ничего неожиданного. Выполнение 'lstA, lstB = zip (..)' просто ест этот внешний список, это называется распаковкой последовательности. –
@MattH - Да, это вопрос, на который нужно ответить в конечном счете !! – bdhar