python set和frozenset 异同点学习记录
今天接触到set和frozenset的同时使用,之前对于二者的了解仅仅是停留在set是可变集合,frozenset是不可变集合,其他的也就没有再记住什么了,今天找时间简单地来总结一下它们的异同点,也方便以后的学习和使用,下面是具体的实践,具体的区别讲解都在注释中,就不再多解释了:
#!usr/bin/env python
#encoding:utf-8
from __future__ import division'''
__Author__:沂水寒城
功能:python set和frozenset 异同点学习记录
''''''
相同点:
都是集合
都拥有集合对象共有的操作,如union、intersection、difference和sysmmetric difference不同点:
set是可变集合,frozenset是不可变集合
set中的元素可以修改,frozenset中的元素一旦创建完成奖就不能再进行增删操作
set无hash值不可做字典中的键,因为它元素可变,frozenset有hash值,元素不可变古可用作字典中的键
'''#工厂方法初始化创建两个集合
set_=set('hangzhou')
print 'set_: ',set_
print 'type set_: ',type(set_)
frozenset_=frozenset('hangzhou')
print 'frozenset_: ',frozenset_
print 'type frozenset_: ',type(frozenset_)#向集合中增加元素
try:tmp_list=['A','B','C','D']for one_item in tmp_list:set_.add(one_item)print 'set_: ',set_print 'type set_: ',type(set_)for one_item in tmp_list:frozenset_.add(one_item)print 'frozenset_: ',frozenset_print 'type frozenset_: ',type(frozenset_)
except Exception,e:print 'Add Exception: ',e#从集合中移除指定元素
try:tmp_list=['B','D']for one_item in tmp_list:set_.remove(one_item)print 'set_: ',set_print 'type set_: ',type(set_)for one_item in tmp_list:frozenset_.remove(one_item)print 'frozenset_: ',frozenset_print 'type frozenset_: ',type(frozenset_)
except Exception,e:print 'Remove Exception: ',e#并交差集合计算
print 'union: ',set_|frozenset_
print 'intersection: ',set_&frozenset_
print 'difference: ',set_-frozenset_
print 'sysmmetric difference: ',set_^frozenset_
结果如下:
set_: set(['a', 'g', 'h', 'o', 'n', 'u', 'z'])
type set_: <type 'set'>
frozenset_: frozenset(['a', 'g', 'h', 'o', 'n', 'u', 'z'])
type frozenset_: <type 'frozenset'>
set_: set(['a', 'A', 'C', 'B', 'D', 'g', 'h', 'o', 'n', 'u', 'z'])
type set_: <type 'set'>
Add Exception: 'frozenset' object has no attribute 'add'
set_: set(['a', 'A', 'C', 'g', 'h', 'o', 'n', 'u', 'z'])
type set_: <type 'set'>
Remove Exception: 'frozenset' object has no attribute 'remove'
union: set(['a', 'A', 'C', 'g', 'h', 'o', 'n', 'u', 'z'])
intersection: set(['a', 'g', 'h', 'o', 'n', 'u', 'z'])
difference: set(['A', 'C'])
sysmmetric difference: set(['A', 'C'])
今天就简单学习到这里了,感觉很多细节的知识还是必须要去花点实践学习和掌握的。
python set和frozenset 异同点学习记录相关推荐
- python小括号报错_Python学习记录:括号配对检测问题
Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...
- 【Python】 Python编程基础练习100题学习记录第七期(61~70)
1.此为GitHub项目的学习记录,记录着我的思考,代码基本都有注释. 2.可以作为Python初学者巩固基础的绝佳练习,原题有些不妥的地方我也做了一些修正. 3.建议大家进行Python编程时使用英 ...
- python做实时温度曲线图_Python学习记录 - matplotlib绘制温度变化折线图
Python学习记录 - matplotlib绘制温度变化折线图 Python学习记录 - matplotlib绘制温度变化折线图 题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折 ...
- 【Python】 Python编程基础练习100题学习记录第二期(11~20)
1.此为GitHub项目的学习记录,记录着我的思考,代码基本都有注释. 2.可以作为Python初学者巩固基础的绝佳练习,原题有些不妥的地方我也做了一些修正. 3.建议大家进行Python编程时使用英 ...
- Python for Maya DCC工具插件开发学习记录(一)
参考学习链接 代码和上手难度比较简单,但是没有字幕- 18版的Maya官方API文档 关于python中的中文使用解决方法 写在最前面 干到啥就写点啥,不过也是从入门开始啦,暂定为第一篇吧.本次记录和 ...
- python增量赋值是什么_python学习记录20190122_增量赋值
python中的增量赋值 一,在python中a=a+b和a+=b有区别吗 **1,对可变的数据类型 a=[1,2,3] print(id(a)) #1602469350792 b=[4,5] a=a ...
- 笨方法学习Python 习题19 函数和变量 ---学习记录
习题19 函数和变量 #定义cheese_and_crackers函数,参数有括号里的俩 def cheese_and_crackers(cheese_count,boxes_of_crackers) ...
- Python学习记录day3
2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...
- [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...
[Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...
- python大神的成长之路_Python大神成长之路: 第三次学习记录 集合 函数 装饰 re...
学习记录day03 字符串可以直接切片,But字符串不可修改 字符串修改:生成了一个新的字符串 LIst修改,在原基础上修改(原内存上) 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重, ...
最新文章
- Elasticsearch 2.2.0 索引配置详解
- pip19离线_更新pip为20后不显示下载链接无法离线下载回退pip版本
- VIM使用系列之一——配置VIM下编程和代码阅读环境
- 我的bolg,我的收获(MVC首次接触)
- 股票决定卖不卖?近六成粉丝支持马斯克出售10%特斯拉股票
- python中定义一个类、实例化时传入的参数如何传递_用实例分析Python中method的参数传递过程...
- Spring框架IOC的实现
- 为什么都建议学java而不是python-都已经掌握了Java,为什么我们还要学Python?
- windows安装python
- [转]Magento2开发教程 - 如何向数据库添加新表
- namenode节点无法启动解决方法
- SosoApi,编辑Swagger UI的神器
- 利用PaddleOCR实现摄像头实时OCR
- 爬虫学习——初步了解爬虫
- obs推流视频比特率_我如何使用OBS和WebSockets流视频
- 直接耦合共射放大电路带载与不带载的电路参数分析
- python 爱心文字墙_博客园墙裂推荐!从未见过如些清新脱俗的完整Python+requests接口自动化测试框架搭建文章!...
- 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm汽车配件管理系统
- 区块链学习名词详解-Part1
- access2007 mysql_Access2007基础教程:开始使用Access 2007