python 2.x版本的zip()函数会直接返回列表,python3.x版本会返回zip对象,但是不论哪个版本所包含的元素是一样的都是元组类型
zip() 函数是python内置函数之一,可以将多个序列(列表,元组,字典,字符串以及range()区间构成的列表)压缩成一个zip对象,就是将这些序列中对应的位置元素重新组合生成一个个新的元组
zip() 函数的语法格式为:
zip(iterable, ...)
其中 iterable,… 表示多个列表、元组、字典、集合、字符串,甚至还可以为 range() 区间。
示例1:
test_list = [1,2,3]
test_tuple = (1,2,3)
# 返回的结果是对象
print('===object===>": ',zip(test_list,test_tuple))
#使用列表推导式转成列表
print('===list===>": ',[i for i in zip(test_list,test_tuple)])
#直接转成列表
print(list(list(zip(test_list,test_tuple))))
示例2
# 长短不一致,以短的一方为主
test_str = 'python'
test_str1= 'java'
test_dir = {'name':'jibu','age':30}
test_dir1 = {'name':'jibu','age':30}
#字符串压缩
print('===str===>: ',list(zip(test_str,test_str1)))
#这样好像没啥意义
print('===dir===>: ',list(zip(test_dir,test_dir1)))
#可以获取字典的key
print('===dir===>: ',list(zip(test_dir)))
结果
===str===>: [('p', 'j'), ('y', 'a'), ('t', 'v'), ('h', 'a')]
===dir===>: [('name', 'name'), ('age', 'age')]
===dir===>: [('name',), ('age',)]
应用场景
先需要将A,B两个列表转换成字典
A = ["a", "b", "c", "d"]
B = [1, 2, 3, 4]
result = dict(zip(A,B))
print(result)
结果
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
一般在做操作的时候都建议使用python的内置函数,这样效率很高