撤消元组键和值的列表

bdh*_*har 0 python tuples list

我可以理解zip()函数用于构造这样的元组列表:

x = ['a', 'b', 'c']
y = ['x', 'y', 'z', 'l']
lstTupA = zip(x,y)
Run Code Online (Sandbox Code Playgroud)

lstTupA会的[('a', 'x'), ('b', 'y'), ('c', 'z')].

lstA, lstB = zip(*lstTupA)
Run Code Online (Sandbox Code Playgroud)

上述操作中提取keys的元组的列表lstAvalues在元组的列表中lstB.

lstA('a', 'b', 'c')lstB('x', 'y', 'z').

我的疑问是:为什么lstAlstB元组而不是列表?a,b并且c是同质的,所以x,yz.将它们组合为元组是不合逻辑的,是吗?

理想的情况下lstA, lstB = zip(*lstTupA)应该分配['a', 'b', 'c']lstA['x', 'y', 'z']lstB(名单)吧?

有人请澄清一下!

谢谢.

S.L*_*ott 5

"将它们归类为元组是不合逻辑的,是吗?"

是.这是合乎逻辑的.

有两种内置序列.列表和元组.

zip()函数有n个参数,用于定义要在n处固定的元组的基数.

只有当其他参数以某种方式,神奇地,附加或不附加到结果序列时,列表才是合适的.这将意味着可变长度的序列,不是由参数的数量定义的zip().这将是一个相当复杂的结构,只需一个函数调用即可构建.