python之zip函数

zip的功能

  • zip的基本用法是将两个或多个可迭代对象作为参数(可以是字符串、列表、元组、字典、集合等),返回一个 zip对象。这个 zip对象是一个可迭代的。
  • Python3版本返回的是对象,例如:<zip object at 0x7fabbe8777d0>,主要是为了减少内存。通过list(zip(iterable...)),即可转换为列表
  • Python2版本返回的是列表
  • 最短输入迭代用完时,迭代器停止没有参数时,它返回一个空的迭代器

传递n个参数时

num_list = [1, 2, 3]
str_tuple = ('a', 'b', 'c')
result = zip(num_list, str_tuple)
print(result)
# print(list(result))
print(dict(result))
# print(set(result))
# print(tuple(result))
<zip object at 0x000001E89F46EBC0>
{1: 'a', 2: 'b', 3: 'c'}

不传参数

  • 不传参数时,返回一个对象
result = zip()
print(result)
<zip object at 0x000001C5046CE880>

传一个参数时

  • 迭代对象字典时,zip的实际操作的对象是它的
num_dict = {'1':'a', '2':'b', '3':'c'}
result = zip(num_dict)
print(list(result))
[('1',), ('2',), ('3',)]
  • 不是字典时
num_list = [1, 2, 3]
result = zip(num_list)
print(list(result))
[(1,), (2,), (3,)]

传递长度不等的参数

  • 当传递长度不等的参数时,以最短的参数为主
num_list = [1, 2, 3]
num_tuple = ('a','b')
result = zip(num_list, num_tuple)
print(list(result))
[(1, 'a'), (2, 'b')]

循环并列迭代

  • 2个参数
num_list = [1, 2, 3]
num_tuple = ('a','b', 'c')
for k, v in zip(num_list, num_tuple):
    print(k, v)
1 a
2 b
3 c
  • 3个参数
num_list = [1, 2, 3]
num_tuple = ('a','b', 'c')
num_str = "ABC"
for k, v, S in zip(num_list, num_tuple, num_str):
    print(k, v, S)
1 a A
2 b B
3 c C

建立字典

num_list = [1, 2, 3]
num_tuple = ('a','b', 'c')
result = zip(num_list, num_tuple)
print(dict(result))
{1: 'a', 2: 'b', 3: 'c'}

解压缩

在需要解压的参数前加个*

  • 2个参数
num_list = [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
num,str1 = zip(*num_list)
print(num)
print(str1)
(1, 2, 3, 4)
('a', 'b', 'c', 'd')
  • 3个参数
num_list = [(1, 'a', 'A'), (2, 'b', 'B'), (3, 'c', 'C'), (4, 'd', 'D')]
num,str1,STR1 = zip(*num_list)
print(num)
print(str1)
print(STR1)
(1, 2, 3, 4)
('a', 'b', 'c', 'd')
('A', 'B', 'C', 'D')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^~^前行者~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值