Я могу понять, zip()
функция используется для построения списка кортежей, как это:
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
(списки), верно?
Кто-нибудь, пожалуйста, уточните!
Спасибо.