python3 zip函数 调用一次_python3中zip()函数使用详解

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

zip在python3中,处于优化内存的考虑,只能访问一次!!!(python2中可以访问多次),童鞋们一定要注意

1、单个参数

代码:

temp_list = ["1", "2", "3"]

# zip()函数单个参数

zip_list = zip(temp_list)

print(zip_list)

# 第一次使用zip_list

print(list(zip_list))

# 第二次使用zip_list

print(list(zip_list))

print(zip_list)

运行结果:

[('1',), ('2',), ('3',)]

[]

2、zip()函数有2个参数

代码:

temp_list2 = ["4", "5", "6"]

# zip()函数有2个参数

zip_list2 = zip(temp_list, temp_list2)

print(list(zip_list2))

运行结果:

[('1', '4'), ('2', '5'), ('3', '6')]

3、zip()应用,也可以使用for循环+列表推导式实现

代码:

# zip()应用,也可以使用for循环+列表推导式实现

temp_dict = {"name": "xiaoming", "age": "20"}

print(" and ".join([f'{a} = "{b}"' for a, b in zip(temp_dict.keys(), temp_dict.values())]))

运行结果:

name = "xiaoming" and age = "20"

4、*zip的操作

代码:

# *zip的操作

m5 = [1, 2, 3]

n5 = [4, 5, 6]

k5 = [7, 8, 9]

zip5 = zip(m5, n5, k5)

m6, n6, k6 = zip(*zip5)

print("m6:", m6) # m6: (1, 2, 3)

print("n6:", n6) # n6: (4, 5, 6)

print("k6:", k6) # k6: (7, 8, 9)

运行结果:

m6: (1, 2, 3)

n6: (4, 5, 6)

k6: (7, 8, 9)

5、当a与b的行数或列数不同时

取两者结构中最小的行数和列数,依照最小的行数和列数将

对应位置的元素进行组合

代码:

temp_list = ["1", "2", "3"]

temp_list2 = ["4", "5"]

# zip()函数有2个参数

zip_list2 = zip(temp_list, temp_list2)

print(list(zip_list2))

temp_list = ["1", "2"]

temp_list2 = ["4", "5", "6"]

# zip()函数有2个参数

zip_list2 = zip(temp_list, temp_list2)

print(list(zip_list2))

运行结果:

[('1', '4'), ('2', '5')]

[('1', '4'), ('2', '5')]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值