【原创】python zip 函数

这是一个二维列表,那么如何将横竖颠倒呢?
即变为:
1 4 7
2 5 8
3 6 9
>>> ls = [
[1,2,3],
[4,5,6],
[7,8,9]
]
>>> ls
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> [y[i] for y in ls for i in range(3)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [[y[i]] for y in ls for i in range(3)]
[[1], [2], [3], [4], [5], [6], [7], [8], [9]]
>>> [[y[i] for y in ls] for i in range(3)]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
>>> for i in ls:
for j in range(len(i)):
print i[j]
print

1
2
3

4
5
6

7
8
9
>>> for i in ls:
for j in range(len(i)):
print i[j],
print

1 2 3
4 5 6
7 8 9
>>> for i in range(len(ls[0])):
for j in ls:
print j[i]
print

1
4
7

2
5
8

3
6
9

>>> for i in range(len(ls[0])):
for j in ls:
print j[i],
print

1 4 7
2 5 8
3 6 9

>>> zip(ls)
[([1, 2, 3],), ([4, 5, 6],), ([7, 8, 9],)]
>>> zip(*ls)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> 
不知道大家看到没,for循环后面打一个","有出奇的作用
zip使用也一定要加 * ,这样就可以颠倒行与列。
来看看zip的使用:
>>> f_name=['A','B','C','E']
>>> l_name=['F','G','H','I']
>>> n_name=['J','K','L','M']
>>> zip(f_name,l_name)
[('A', 'F'), ('B', 'G'), ('C', 'H'), ('E', 'I')]
>>> zip(f_name,l_name,n_name)
[('A', 'F', 'J'), ('B', 'G', 'K'), ('C', 'H', 'L'), ('E', 'I', 'M')]
>>> zip(*zip(f_name,l_name,n_name))
[('A', 'B', 'C', 'E'), ('F', 'G', 'H', 'I'), ('J', 'K', 'L', 'M')]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值