博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZIP() 函数
阅读量:5876 次
发布时间:2019-06-19

本文共 1637 字,大约阅读时间需要 5 分钟。

 

 

正文

描述

zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。

如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。

利用 * 号操作符,与zip相反,进行解压。

语法

zip() 函数语法:

1
zip
(iterable1,iterable2, ...)

参数说明:

  • iterable -- 一个或多个可迭代对象(字符串、列表、元祖、字典)

返回值

Python2中直接返回一个由元组组成的列表,Python3中返回的是一个对象,如果想要得到列表,可以用 list() 函数进行转换。

实例

以下实例展示了 zip() 函数的使用方法:

Python2中:

1
2
3
4
5
6
7
8
9
10
>>>a
=
[
1
,
2
,
3
]
#此处可迭代对象为列表
>>> b
=
[
4
,
5
,
6
]
>>> c
=
[
4
,
5
,
6
,
7
,
8
]
>>> zipped
=
zip
(a,b)    
# 打包为元组的列表
>>> zipped
[(
1
,
4
), (
2
,
5
), (
3
,
6
)]
>>>
zip
(a,c)             
# 元素个数与最短的列表一致
[(
1
,
4
), (
2
,
5
), (
3
,
6
)]
>>>
zip
(
*
zipped)         
# 与 zip 相反,可理解为解压
[(
1
,
2
,
3
), (
4
,
5
,
6
)]

Python3中:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> a
=
[
1
,
2
,
3
]
#此处可迭代对象为列表
>>> b
=
[
4
,
5
,
6
]
>>> c
=
[
4
,
5
,
6
,
7
,
8
]
>>> zipped
=
zip
(a,b)
>>> zipped
<
zip
object
at
0x02B01B48
>
#返回的是一个对象
>>>
list
(zipped)
[(
1
,
4
), (
2
,
5
), (
3
,
6
)]
#使用list()函数转换为列表
>>>
list
(
zip
(a,c))
[(
1
,
4
), (
2
,
5
), (
3
,
6
)]
>>> zipped
=
zip
(a,b)
>>>
list
(
zip
(
*
zipped))
#解压也使用list进行转换
[(
1
,
2
,
3
), (
4
,
5
,
6
)]

 

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python3
 
#v1,v2,v3可是是任何可迭代对象,如:字符串、列表、元祖、字典
v1
=
{
1
:
11
,
2
:
22
}
#此处可迭代对象为字典
v2
=
{
3
:
33
,
4
:
44
}
v3
=
{
5
:
55
,
6
:
66
}
 
v
=
zip
(v1,v2,v3)  
#压缩
print
(
list
(v))
 
w
=
zip
(
*
zip
(v1,v2,v3))
#解压
print
(
list
(w))

结果:

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

搭配for循环支持并行迭代:

1
2
3
4
5
6
7
#!/usr/bin/python3
 
list1
=
[
2
,
3
,
4
]
list2
=
[
4
,
5
,
6
]
 
for
x,y
in
zip
(list1,list2):
    
print
(x,y,
'--'
,x
*
y)

结果:

1
2
3
2
4
-
-
8
3
5
-
-
15
4
6
-
-
24

转载于:https://www.cnblogs.com/trunkslisa/p/9524236.html

你可能感兴趣的文章
C/C++ 多线程机制
查看>>
js - object.assign 以及浅、深拷贝
查看>>
python mysql Connect Pool mysql连接池 (201
查看>>
Boost在vs2010下的配置
查看>>
android camera(四):camera 驱动 GT2005
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
20款绝佳的HTML5应用程序示例
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>
如何使用Core Text计算一段文本绘制在屏幕上之后的高度
查看>>
==和equals区别
查看>>
2010技术应用计划
查看>>
XML 节点类型
查看>>
驯服 Tiger: 并发集合 超越 Map、Collection、List 和 Set
查看>>
Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现...
查看>>
Template Method Design Pattern in Java
查看>>
MVC输出字符串常用四个方式
查看>>
LeetCode – LRU Cache (Java)
查看>>
JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)...
查看>>
【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2
查看>>