python中对二维列表进行转置

 

python中对二维列表进行转置

001、实现方法1:使用zip*解包和list函数

>>> list1 = [["aa", "bb", "cc"], [100, 300, 500], ["kk", "xx", "yy"], [88, 22, 33]]        ## 测试列表
>>> list1 
[['aa', 'bb', 'cc'], [100, 300, 500], ['kk', 'xx', 'yy'], [88, 22, 33]]
>>> zip(*list1) 
<zip object at 0x7f4f271718c0>
>>> list(zip(*list1))                                                                      ## zip*解包 和 list函数实现转置
[('aa', 100, 'kk', 88), ('bb', 300, 'xx', 22), ('cc', 500, 'yy', 33)]

 

002、使用列表推导式实现

>>> list1 = [["aa", "bb", "cc"], [100, 300, 500], ["kk", "xx", "yy"], [88, 22, 33]]        ## 测试列表
>>> for col in range(len(list1[0])):
...     col_values = [row[col] for row in list1]
...     col_values
...
['aa', 100, 'kk', 88]
['bb', 300, 'xx', 22]
['cc', 500, 'yy', 33]
>>> list2 = list()
>>> for col in range(len(list1[0])):
...     col_values = [row[col] for row in list1]         ## 列用列表推导式输出每一列的值,并保存在新的列表中
...     list2.append(col_values)
...
>>> list2
[['aa', 100, 'kk', 88], ['bb', 300, 'xx', 22], ['cc', 500, 'yy', 33]]

 。

 

>>> list1
[['aa', 'bb', 'cc'], [100, 300, 500], ['kk', 'xx', 'yy'], [88, 22, 33]]           ## 测试列表
>>> [[row[col] for row in list1] for col in range(len(list1[0]))]                 ## 利用列表推导式实现
[['aa', 100, 'kk', 88], ['bb', 300, 'xx', 22], ['cc', 500, 'yy', 33]]

 。

 

posted @ 2025-07-16 09:06  小鲨鱼2018  阅读(21)  评论(0)    收藏  举报