导航:首页 > 编程语言 > zip在python中意思

zip在python中意思

发布时间:2022-07-19 20:19:45

‘壹’ python zip 是什么

zip就是把2个数组糅在一起
x=[1, 2, 3, 4, 5 ]
y=[6, 7, 8, 9, 10]
zip(x, y)就得到了
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

比如你有2组坐标,你想两两对应的相加,那么zip函数就很有用了。
再比如,你有2个数组A,B,A存了班级里的人的名字,B是每个人的考试分数,你需要通过某个人的名字来查考试分数,那你需要一个字典,zip可以很方便地帮你建立字典:
>>> x=['bob','tom','kitty']
>>> y=[80,90,95]
>>>d=dict(zip(x,y))
[('bob', 80), ('tom', 90), ('kitty', 95)]
>>> d['bob']
返回80,多方便啊

‘贰’ 关于 python 的zip

def myzip(*seqs): #输入参数是一组类似字符串的东西
reqs = [list(s) for s in seqs] #将每个输入参数变成一个LIST,没有用上
res = []
while all(seqs): #只要所有字符串都不为空就继续做
res.append(tuple(s.pop(0) for s in seqs)) #这里seqs应该用reqs来替换,功能是选择seqs里的每一组,如果其中有任何一组不完整,则退出循环
return res
这个函数似乎是用来采样的。将一个以列为单位的矩阵,转换成按行为单位的。

这个函数似乎是用来采样的。将一个以列为单位的矩阵,转换成按行为单位的。

whileall(seqs)中all是一个allistrue的意思。

tuple这种结构是只读的,比[]list效率要高些。

s.pop(0)forsinseqs是从seqs依次取出s,再从s中弹出第一个元素。通常list才可支持pop方法。

所以这里seqs疑似应该用reqs代替

whileany(xxx),这个与all相似,只是any的含义是只要xxx中有一个为True就为True,而all是只要有一个为False就为False

‘叁’ python 当中的zip( )函数到底是干嘛的

这个可以理解为拉链,将两个list拉到一起来,每个对应元素做一定操作后,合并成一个list.
比如:
zip([1,2,3],['a','b','c'])
结果是
[(1,
'a'),
(2,
'b'),
(3,
'c')]

‘肆’ python中zip函数详解

a=[1,2,3,4,5,6,7,8,9]
b=[5,9,2,4,5,7,3,1,7]
c=list(zip(a,b))#打包
print(c)
输出内容:[[1,5],[2,9],[3,2],[4,4],[5,5],[6,7],[7,3],[8,1],[9,7]]
d=list(zip(*c))#解包
print(d)
输出内容:[[1,2,3,4,5,6,7,8,9],[5,9,2,4,5,7,3,1,7]]

‘伍’ python怎样压缩解压缩ZIP文件

1、python使用zipfile模块压缩和解压ZIP文件
2、读取zip文件
首先,通过zipfile模块打开指定zip文件,如:
zpfd = zipfile.ZipFile(path, mode='r')
对于zipfile,其标志与open所用的打开文件标志有所不同,不能识别 'rb'。
然后,读取zip文件中的内容,zipfile对象提供一个read(name)的方法,name为zip文件中的一个文件入口,执行完成之后,将返回读出的内容,如:
for filename in zpfd.namelist():
tmpcont = zpfd.read(filename)
print 'len(tmpcont)', 'tmpcont'
需要注意的是,读取zip文件时,只能读取内容
3、写入zip文件
首先,需要zipfile模块写打开或创建zip文件,如:
zpfd = zipfile.ZipFile(path, mode='w')
写打开是标志可以为'w'或'a'('a'表示写入一个zip文件), 或者传入第三个参数cmopression压缩标志
compression=zipfile.ZIP_DEFLATED 需要导入zlib模块
compression=zipfile.ZIP_STORED则表示只对文件进行打包,并不压缩
写入有两种方式,一种是直接写入一个已经存在的文件,可使用zipfile对象中write(filename, arcname, compress_type)第一个参数为文件名,第二个参数指写入zip文件中的文件名,默认与filename一致,第三个参数压缩标志可以覆盖打开zipfile时的使用参数;另一种是写入一个字符串,可使用zipfile对象中的writestr(zinfo_or_arcname, bytes),第一个参数是zipinfo对象或写到zip文件中的压缩名,第二个参数是待写入的字符串
4、最后,对于打开的zipfile对象需要进行关闭,从而使得写入内容真正写入磁盘,即:
zpfd.close()

‘陆’ Python版本3.3有zip这个用法吗

当然是有的!下面具体分析不同:

zip方法在Python 2 和Python 3中的不同

为何有这种不同
更多注解

问题一:zip方法在Python 2 和Python 3中的不同
Python 2 的代码演示:
$ python2
>>> a = zip((1, 2), (3, 4))
>>> a
[(1, 2), (3, 4)]
# 可以看到这里返回的是一个list

Python 3 的代码演示:
$ python3
>>> a = zip((1, 2), (3, 4))
>>> a
<zip object at 0x1007096c8>
# 可以看到这里返回的是一个对象,这里就是2和3的不同点
>>> dir(a) # 查看a的相关属性
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__rece__', '__rece_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
# 这里值得注意的是 '__iter__' 和 '__next__' 方法,说明a是一个支持遍历的对象
# 既然知道了a是一个支持遍历的对象,我们也就基本明白了a的用法了
### 和Python2的区别(一):返回的是一个支持遍历的对象,而不是一个list本身
>>> for i in a: print i # in 方法
...
(1, 3)
(2, 4)
>>> next(a) # 我们测试__next__方法
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
StopIteration # 说明next方法是支持的,但是这里也说明了对象只能遍历一次
>>> a = zip((1, 2), (3, 4)) # 这里需要重新赋值,因为这个对象只能遍历一次
>>> next(a)
(1, 3) # 运行良好
### 返回的对象支持遍历的操作

问题二:为何有这种不同
我想最重要的原因是节约了不少的内存吧。Python的运行效率和编译类型的语言自然是没法比,但是能优化就优化一点吧~谁不想有更高的追求呢。
问题三:更多注解
这个zip在不同版本的不同反应了python的一个演变:大部分返回list的函数不在返回list,而是返回一个支持遍历的对象,比如map、fiter之类的,基本的例子如下:
$ python3
>>> a = map(abs, [1, 2, -3])
>>> a
<map object at 0x100707ed0>
>>> list(a) # 如果不习惯,可以自己手动转化为list,也是写兼容代码需要注意的地方
[1, 2, 3]

$ python2
>>> a = map(abs, [1, 2, -3])
>>> a
[1, 2, 3]

‘柒’ Python版本3.3有zip这个用法吗

Python3中,zip()函数实现为迭代器,可以随着迭代返回一系列值

内置函数next()可以进行迭代,对next()传递可迭代对象,将会进行一次迭代,返回一个值

此外,python中还有许多迭代环境,会自动进行迭代,比如典型的for i in obj循环

如果需要一次性获得zip()的所有值,即类似于Python2中返回一个列表,需要:

list(zip(a,b))

‘捌’ 请简述zip函数的功能及Python.3.x中使用zip函数生成列表的方法。

一、zip函数的功能如下:
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。当各个迭代器中元素的个数不一致时,则返回列表中长度最短的情况,利用 *号操作符,可以将元组解压为列表。
二、Python.3.x中使用zip函数生成列表的方法如下:
1、作出说明,使用zip函数将可迭代的对象作为参数。
2、将对象中对应的元素打包成一个个元组。
3、用zip函数平行地遍历多个迭代器,如果可迭代对象的长度不相同将按短的序列为准。
4、遍历过程中产生元组,Python.3.x会把元组生成好,然后生成列表。

‘玖’ python中zip函数有哪些高级用法

zip() 功能是从参数的多个迭代器中选取元素组合成一个新的迭代器。顾名思义,它就是一个将对象进行打包和解包的函数。

它可以传入的参数包括;元组、列表、字典等迭代器

它返回一个zip对象,其内部元素为元组,一组一组的,可以转化为列表或元组,这里要强调一下,Python2和Python3中返回的zip对象有所不同。

Python3中zip()函数再不再返回list对象,但是可以通过list强行转换。(类似的函数变化还有dictionary关联的keys()、values()、items(),map(),filter())。

打包zip(iterables)

上面的代码使用的环境是Python3.6,其中list (z)操作就是强制转换。注意一个问题,a和b这两个列表是不同长短的,这时候zip函数就会匹配完最短的那个便结束。

当zip函数的参数只有一个时,它将从iterable中依次取一个元素,组成一个元组。

解包zip(*iterables)

解包,zip 相反,可理解为解压,返回多维矩阵形式,有几个组元素就返回几维的。

比如,下面我是用三个列表组合起来的迭代式,那么解压后就返回三维的矩阵

zip高级用法

讲完了基本的再来说一下该函数的高级用法。高级用法离不开一个词:Pythonic,就是将代码写的更优雅美观,看起来有逼格!

1. 列表推导

例如:

a = [1,2,3,4]
b = [5,6,7,8]

我们要同时遍历a、b,且要对它们进行操作,那就要放在同一个for循环内,zip函数正好合适

注意:如果是Python2环境中,要使用izip才能提高效率。

当然,如果你需要对下标进行操作,那么还需要加上enumerate函数

2. 使用zip创建键值对,zip方法返回的是一个元组,用它来创建键值对,简单明了。

‘拾’ python中的zipfile

python中的zipfile模块是用于解压/压缩zip文件的,压缩a.txt为a.zip,从b.zip解压出b.txt(假设它们都放在d:\,且b.zip中只有b.txt)示范代码如下5行:
from os import chdir;
from zipfile import ZipFile;
chdir("d:/");
with Zipfile("d:/b.zip","r") as zipf:zipf.extractall();
with Zipfile("d:/a.zip","w") as zipf:zipf.write("d:/a.txt");

阅读全文

与zip在python中意思相关的资料

热点内容
python人工智能搭建 浏览:248
安卓m6用什么下载 浏览:997
对程序员有偏见吗 浏览:292
如何让服务器运行缓慢 浏览:238
黑马程序员入学流程 浏览:448
win732位安装python什么版本 浏览:786
压缩方式标准 浏览:558
免费低吸指标源码 浏览:183
MO命令是 浏览:47
python入门常见错误 浏览:410
改加密包名 浏览:785
程序员在线编译器 浏览:247
山东兼职程序员收费标准 浏览:424
物业管理系统项目java源码 浏览:15
林皋pdf 浏览:586
vue编译后命名 浏览:732
可以发布命令的 浏览:954
安卓系统如何领取国旗 浏览:330
chromium编译linux 浏览:472
exe在线反编译工具 浏览:368