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}

相关内容

热门资讯

摸鱼、钓虾、吃瓜、赏荷…初夏时... 这个周末,一场场充满野趣的“田园嘉年华”在沪郊金山多个农场上演,吸引众多市民带着孩子下乡来,赛跑、吃...
原创 戚... 5月28日,北京环球影城迎来了一对温暖的家庭画面:戚薇和李承铉携三岁半的儿子Seven现身游玩。现场...
滹沱河畔 遇见“诗和远方” 图为市民在滹沱河畔休闲娱乐。 初夏五月,惠风和畅。徜徉在石家庄滹沱河生态区(城区段),澄澈河水蜿蜒...
在迪士尼排队两小时,我才看清V... 文丨沈理 在网上看到一则新闻: 上海迪士尼,创极速光轮排队区。一个父亲牵着七八岁的儿子,已经在烈日...
重庆文旅喊你去吃火锅、观山水、... 本网讯(草原云·正北方网记者 马丽侠)火锅、机车、文创、演艺……5月28日下午,重庆市文化和旅游发展...