python学习004——zip()函数
admin
2024-03-16 18:03:00

004_zip()函数

  • zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及 range() 区间构成的列表)“压缩”成一个 zip 对象。所谓“压缩”,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组

  • zip() 函数的语法格式为:

zip(iterable, ...)
  • iterabl – 一个或多个迭代器;

  • 示例01

    a = [1, 2, 3]
    b = [4, 5, 6]
    c = [4, 5, 6, 7, 8]
    a_b_zip = zip(a, b)
    print("type of a_b_zip is{}".format(type(a_b_zip)))
    a_b_zip = list(a_b_zip)
    print(a_b_zip)
    a_c_zip = zip(a, c)
    a_c_zip = list(a_c_zip) 
    # zip()函数的返回对象转换成list不是必须的,只是为了方便输出,list输出很直观
    print(a_c_zip)
    
  • 输出:

type of a_b_zip is
[(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5), (3, 6)]

zip()函数接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组*),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用号操作符,可以将list unzip(解压)

Python3.0开始,zip()函数已经不返回 list 了,而是返回 iterable(可迭代对象)。这个可迭代对象需要特别注意,只能进行一次迭代遍历,第二次遍历为空了。
  • 示例02
a = [1, 2, 3]
c = [6, 7, 8]
a_c_zip = zip(a,c)
# print(list(a_c_zip))_ac =zip(* a_c_zip)
print(list(_ac)) # 结果为[(1, 2, 3), (6, 7, 8)]
#如果没把上面的 print(list(a_c_zip)) 注掉,这里的显示结果就是[]了
zip()之后的结果只能“使用一次”
zip()实际上是一个生成器对象,故使用list()获取zip()结果时,已经相当于是完成一次迭代遍历
第二次再次使用list()时迭代已经结束,所以返回[]
  • 示例03

将A,B两个列表转换成字典

A = ["汪二", "张三", "李四", "彭五"]
B = [1, 2, 3, 4]result = dict(zip(A,B))
print(result)
  • 输出
{'汪二': 1, '张三': 2, '李四': 3, '彭五': 4}

相关内容

热门资讯

2025海上丝绸之路城市合作发... 11月18日至20日,以“融创融汇 合作共赢”为主题的2025海上丝绸之路城市合作发展大会暨国际旅行...
洛福敦群岛:挪威北极光下的世外... 挪威的洛福敦群岛,犹如一颗镶嵌在北极圈内的璀璨明珠,以其壮丽的自然景观和神秘的极光闻名于世。这里的雪...
“只有河南”景区无烟化管理获游... 近日,有网友在社交平台发帖称,去过“只有河南·戏剧幻城”(以下简称“只有河南”)后才发现景区禁烟保持...
四川TOP100餐厅出炉!成都... 🔥你知道吗?四川美食又上热搜了!最近高德扫街榜发布‘烟火四川’榜单,成都直接拿下58家餐厅,乐山小吃...
原创 奶... 走在2025年的城市街头,奶茶店看着比以前还琳琅满目。 高端商场里的连锁品牌、社区小巷的小众门店,几...