(python函数03)zip()函数
zip是用来压缩的,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个元组(tuple),然后返回有这些tuples组成的对象,可强制转化为列表和字典。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。
示例代码01
list_str = ['a', 'b', 'c', 'd']
list_num = [1, 2, 3, 4]
list_new = zip(list_num, list_str)
print("zip结果(列表):", list(list_new))
运行结果01
zip结果(列表): [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
示例代码02
list_str = ['a', 'b', 'c', 'd']
list_num = [1, 2, 3, 4]
list_new = zip(list_num, list_str)
print("zip结果(字典):", dict(list_new))
运行结果02
zip结果(字典): {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
示例代码03
list_str = ['a', 'b', 'c', 'd']
list_num = [1, 2, 3, 4]
list_new = zip(list_num, list_str)
print("zip结果(列表):", list(list_new))
print("zip结果(字典):", dict(list_new))
运行结果03
zip结果(列表): [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
zip结果(字典): {}
-
这三个例子说明打包一次,只能强制转化一次列表或者字典
示例代码04
str = 'abcd'
str2 = '1234'
list_new = zip(str, str2)
print('zip结果(字典):', dict(list_new))
运行结果04
zip结果(字典): {'a': '1', 'b': '2', 'c': '3', 'd': '4'}
示例代码05
list_str = ['a', 'b', 'c', 'd'] list_num = [1, 2, 3, 4] x, y, z, p = zip(list_num, list_str) print(x) print(y) print(z) print(p)
运行结果
(1, 'a') (2, 'b') (3, 'c') (4, 'd')
这个代码不知道怎么描述,记住吧哈。看别人代码的时候会遇到的!
-
字符串也是迭代类型喔!
有了压缩,肯定少不了解压缩,在python中,对zip函数的解压缩就是*zip函数,解压缩并非是返回原来的两个列表,而是返回一个列表,之前的内容被定义为元组类型
示例代码06
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = ['x', 'y', 'z']
d = zip(a, b, c)
e = zip(*d)
print('zip(a, b, c)----->', d)
print('zip(a, b, c)----->类型', type(d))
print('zip(*zip(a, b, c))----->', e)
print('zip(*zip(a, b, c))----->类型', type(e))
x, y, z = e
print(z)
print(y)
print(x)
运行结果06
zip(a, b, c)-----> <zip object at 0x00000206E95E0788>
zip(a, b, c)----->类型 <class 'zip'>
zip(*zip(a, b, c))-----> <zip object at 0x00000206E95E0648>
zip(*zip(a, b, c))----->类型 <class 'zip'>
('x', 'y', 'z')
('a', 'b', 'c')
(1, 2, 3)
哇塞!好神奇啊!这是语言,仿佛没有为什么!
浙公网安备 33010602011771号