pickle 存放数据

将数据保存为文件是永久保存的唯一方式,而文档内部是以字符串形式进行存放的,如果我们需要保存的是一个包含很多数据甚至是类的实例化的复杂的列表、元组和字典等,将其以文本文档方式保存后,很难将其还原回去,而pickle的出现解决了这一难题,它的解决机制是这样的:所有的数据类型在电脑内本质上都是二进制的数字组成,如果能将这些列表、元组或者字典直接保存为二进制文件的格式,即实现了永久存储,且还可以直接通过unpickle的方式将其从二进制形式转换为相应的列表、元组或者字典类型。在这个模块里面有两个基本的内置函数可以实现上述过程:首先是dump()函数,将复杂的数据类型转换为一个二进制文件保存起来;其次是load()函数,将保存好的二进制文件恢复成相应的复杂数据类型。

保存和提取python运算完的结果

首先import pickle模块

定义一个字典:

a_dict={'da':111,2:[23,1,4],'23':{1:2,'d':'sad'}}

首先打开一个file,后缀名用pickle代替即可,以二进制形式打开

file=open('pickle_example.pickle','wb')

接着用dump,把a_dict放入到file中,并关闭文件

pickle.dump(a_dict,file)
file.close()

接着读取我们存储的文件

首先打开文件,打开方式为‘rb’,使用pickle的load下载内容,最后关闭文件

file=open('pickle_example.pickle','rb')
a_dict1=pickle.load(file)
file.close()
print(a_dict1)

运行结果如下所示:

上述过程可简化,使用with语句,不用考虑到关闭文件,只要运行完会自动将文件关闭

with open('pickle_example.pickle','rb')as file:
a_dict1=pickle.load(file)
print(a_dict1)

写入也可以用with语句简化

set 找不同

使用set可以去除对象中的重复元素

char_list=['a','b','c','c','d','d','d']

print(set(char_list))

运行结果如下所示:

返回的是一个类似于字典的内容,但不是字典,字典有key和value,但是该内容只有value

使用type来输出类型:

print(type(set(char_list)))
print(type({1:2}))

结果如下所示:

定义一个句子,set同样能去掉重复的内容:

sentence='Welcome Back to This Tutorial'

print(set(sentence))

运行结果如下所示:

set区分大小写、空格

能否直接比较char_list和sentence的不同?

print(set([sentence,char_list]))

运行报错,不能在set中传入list,出现错误:TypeError: unhashable type: 'list'

可以通过add增加内容,如果set中已有的内容则不重复添加

unique_char=set(char_list)
unique_char.add('x')
print(unique_char)

运行结果如下,增加了‘x’

同样add不能传入list,需要一个一个添加

还可以通过clear清除内容

unique_char.clear()

运行结果为:

可以通过remove去除某一内容,返回值为None

print(unique_char.remove('x'))
print(unique_char)

运行结果为:

如果remove的内容是对象中没有的,则运行将会报错,为了避免这种情况,可使用discard,运行将不会报错,返回None

使用difference和intersection来寻找两个序列中不同和相同的内容,代码如下所示:

set1=unique_char
set2={'a','e','i'}
print(set1)
print(set2)
print(set1.difference(set2))
print(set1.intersection(set2))

运行结果如下所示:

Python初学——pickle & set的更多相关文章

  1. Python ,pickle

    @Python pickle模块学习   pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. ---------------------------------------- ...

  2. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

     孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...

  3. (Python编程)Pickle对象

    Programming Python, 3rd Edition 翻译 最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD 19.4. Pickled Obje ...

  4. Python 序列化 pickle/cPickle模块

    Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...

  5. 从watevrCTF-2019:Pickle Store中学习python之pickle序列化漏洞

    从watevrCTF-2019:Pickle Store中学习python之pickle序列化漏洞 pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. 其本质是Picklin ...

  6. Python初学笔记之字符串

    一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...

  7. 21 python 初学(json pickle shelve)

    json: # _author: lily # _date: 2019/1/19 import json my_dict = {'name': 'lily', 'age': 18} f = open( ...

  8. Python初学的易犯错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  9. 【python】pickle模块

    持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检 ...

随机推荐

  1. maven创建web工程Spring配置文件找不到问题解决方案

    使用maven创建web工程,将Spring配置文件applicationContext.xml放在src/resource下,用eclipse编译时提示class path resource [ap ...

  2. (转)流量加速插件 FinalSpeed介绍及一键安装教程

    原文章连接:https://blog.kuoruan.com/82.html 1 介绍 官方介绍:FinalSpeed是高速双边加速软件,可加速所有基于tcp协议的网络服务,在高丢包和高延迟环境下,仍 ...

  3. zookeeper单机模式安装

    zookeeper单机模式安装 更多文章:http://blogxinxiucan.sh1.newtouch.com/2017/07/26/zookeeper单机模式安装/ 下载zookeeper u ...

  4. [补档]暑假集训D4总结

    考试 爆零了,不开心,打了两道自己以为是正解的东西,打了两道样例骗分,结果发现并没有给样例分= =,自己以为的正解也打挂了,所以就很= = 但是没办法啊,自己弱也不能怪谁,考试这东西有时候也很玄学. ...

  5. 使用Node.js调用阿里云短信的发送以及接收

    为了使用Node.js调用阿里云短信服务,我自己写了个npm包, 目前实现了: 使用Node.js调用阿里云短信服务,发送短信: 使用Node.js调用阿里云短信服务以及MNS服务,接收用户上行短信 ...

  6. Spring @Transactional 使用

    Spring @Transactional是Spring提供的一个声明式事务,对代码的侵入性比较小,只需考虑业务逻辑,不需要把事务和业务搞混在一起. @Transactional 可以注解在inter ...

  7. 纯CSS实现垂直居中的7种方法

    今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...

  8. 扩展Python模块系列(二)----一个简单的例子

    本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...

  9. CSS规范--春风十里不如写好CSS

    先吟几句: 最近看了看春风十里不如你,本来很少看剧的,暑假有点闲就看了,感觉不错,挺喜欢这部剧,就套了个名字,嘿嘿嘿.剧里面印象深刻的是<致橡树>这首诗,念几句: 我如果爱你,绝不像攀援的 ...

  10. 深入解析JavaScript中的this关键字

    如果问初学者js中什么东西比较难懂,很多回答会是this关键字.this在不同场景下所指向的对象不同,这就有一种扑朔迷离的感觉,放佛魔法一般神秘:this到底是什么?这里有四种绑定规则. 1. 默认绑 ...