data1 = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11))
data2 = zip(*data1)
print(type(data2)) # <class 'zip'>
print(tuple(data2)) # 输出 ==> ((0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11))
在阅读CSDN一位博主的文章中,关于zip函数的此种用法非常不理解,为什么能转置?
data1 = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11))
data2 = zip(*data1)
print(type(data2)) # <class 'zip'>
print(tuple(data2)) # 输出 ==> ((0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11))
在阅读CSDN一位博主的文章中,关于zip函数的此种用法非常不理解,为什么能转置?
就是说传入的是data1中的每一个子元组,而zip将所有元组的对应位置进行了组合,也就是每个元组对应位置进行组合形成一个新的元组
将zip的结果重新转为tuple,就是将其重新转化为嵌套元组,此元组的每一个子元组都是原元组对应子元组在某一位置的拼接
说的有点绕,你大概理解一下意思
有帮助望采纳