Python初学——pickle & se

本文介绍如何使用Python的pickle模块实现数据的持久化存储及读取,并探讨了利用set进行数据去重的方法,包括如何操作set进行集合运算。

pickle 存放数据

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

首先import pickle模块

定义一个字典:

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

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

接着用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))

运行结果如下所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值