python解压赋值

Python015

python解压赋值,第1张

情绪的尽头,不是脏话,不是发泄,而是沉默。

上一篇: python获取相对路径、绝对路径的 file 使用

前提条件:变量的数量必须和序列元素的数量一样多。

变量个数多于序列元素个数报错: ValueError: not enough values to unpack(expected 6, got 5)

变量个数少于元素个数报错: ValueError: too many values to unpack(expected 4)

示例如下:

有些时候你在解压序列的时候并不知道这个序列有多少个元素,因此你也不知道需要多要个变量来占位,此时就需要

使用python的星号表达式,示例如下:

例如现在有一个比赛需要计算去掉最高分和最低分后的平均分,先排序,再使用星号表达式。

注意以上解压的s_mid永远都是列表类型。

嵌套序列中使用占位变量

如果感觉本文对您有帮助可以点个赞哦

本文仅供交流学习,请勿用于非法途径

仅是个人意见,如有想法,欢迎留言

任何的序列(或者可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。

唯一的前提就是变量的数量必须跟序列元素的数量是一样的

使用Python的星号(*)解决这个问题

解压出来的变量永远是列表类型

使用collections.deque

使用heapq模块的两个函数,nlargest()和nsmallest()

当要查找的元素个数相对比较小的时候,heapq.nsmallest()和heapq.nlargest()是很合适的

如果只是想找唯一的最大或最小就使用max()和min()函数

如果N的大小和集合大小接近的时候,则使用切片操作会更快一点sorted(items)[:N]或者sorted(items)[-N:]

使用heapq模块的heappush()和heappop()

一个字典就是一个键对应一个单值的映射。

如果你想要一个值映射多个值,需要这多个值放到另外的容器中

使用collections模块OrderedDict类

在迭代的时候保存元素被插入时的顺序

注意,3.6 的 dict 是有序的,在此版本之前皆是无序

直接使用max函数,是对字典的key值进行操作

可以使用zip函数将键和值反转过来

注意:zip()函数创建的是一个只能访问一次的迭代器

可以简单的使用字典的keys()或者items()方法返回结果上执行集合操作

字典的keys()方法返回一个展现键集合的键视图对象

字典的items()方法返回一个包含(键,值)对的元素视图对象

匿名函数: 将创建好的匿名函数通过一个变量去接收,使用变量去调用函数

简单使用set()方法构建一个集合,也可以实现消除重复元素,但是元素位置会被打乱

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()