今天接触到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 异同点学习记录相关推荐

  1. python小括号报错_Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  2. 【Python】 Python编程基础练习100题学习记录第七期(61~70)

    1.此为GitHub项目的学习记录,记录着我的思考,代码基本都有注释. 2.可以作为Python初学者巩固基础的绝佳练习,原题有些不妥的地方我也做了一些修正. 3.建议大家进行Python编程时使用英 ...

  3. python做实时温度曲线图_Python学习记录 - matplotlib绘制温度变化折线图

    Python学习记录 - matplotlib绘制温度变化折线图 Python学习记录 - matplotlib绘制温度变化折线图 题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折 ...

  4. 【Python】 Python编程基础练习100题学习记录第二期(11~20)

    1.此为GitHub项目的学习记录,记录着我的思考,代码基本都有注释. 2.可以作为Python初学者巩固基础的绝佳练习,原题有些不妥的地方我也做了一些修正. 3.建议大家进行Python编程时使用英 ...

  5. Python for Maya DCC工具插件开发学习记录(一)

    参考学习链接 代码和上手难度比较简单,但是没有字幕- 18版的Maya官方API文档 关于python中的中文使用解决方法 写在最前面 干到啥就写点啥,不过也是从入门开始啦,暂定为第一篇吧.本次记录和 ...

  6. python增量赋值是什么_python学习记录20190122_增量赋值

    python中的增量赋值 一,在python中a=a+b和a+=b有区别吗 **1,对可变的数据类型 a=[1,2,3] print(id(a)) #1602469350792 b=[4,5] a=a ...

  7. 笨方法学习Python 习题19 函数和变量 ---学习记录

    习题19 函数和变量 #定义cheese_and_crackers函数,参数有括号里的俩 def cheese_and_crackers(cheese_count,boxes_of_crackers) ...

  8. Python学习记录day3

    2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...

  9. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...

    [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...

  10. python大神的成长之路_Python大神成长之路: 第三次学习记录 集合 函数 装饰 re...

    学习记录day03 字符串可以直接切片,But字符串不可修改 字符串修改:生成了一个新的字符串 LIst修改,在原基础上修改(原内存上) 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重, ...

最新文章

  1. Elasticsearch 2.2.0 索引配置详解
  2. pip19离线_更新pip为20后不显示下载链接无法离线下载回退pip版本
  3. VIM使用系列之一——配置VIM下编程和代码阅读环境
  4. 我的bolg,我的收获(MVC首次接触)
  5. 股票决定卖不卖?近六成粉丝支持马斯克出售10%特斯拉股票
  6. python中定义一个类、实例化时传入的参数如何传递_用实例分析Python中method的参数传递过程...
  7. Spring框架IOC的实现
  8. 为什么都建议学java而不是python-都已经掌握了Java,为什么我们还要学Python?
  9. windows安装python
  10. [转]Magento2开发教程 - 如何向数据库添加新表
  11. namenode节点无法启动解决方法
  12. SosoApi,编辑Swagger UI的神器
  13. 利用PaddleOCR实现摄像头实时OCR
  14. 爬虫学习——初步了解爬虫
  15. obs推流视频比特率_我如何使用OBS和WebSockets流视频
  16. 直接耦合共射放大电路带载与不带载的电路参数分析
  17. python 爱心文字墙_博客园墙裂推荐!从未见过如些清新脱俗的完整Python+requests接口自动化测试框架搭建文章!...
  18. 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm汽车配件管理系统
  19. 区块链学习名词详解-Part1
  20. access2007 mysql_Access2007基础教程:开始使用Access 2007

热门文章

  1. 第十次课:Python函数(一)
  2. 标准I/O缓冲:全缓冲、行缓冲、无缓冲
  3. 3月7日 Maximum Subarray
  4. 【笔记】《编写高质量代码:改善c#程序的157个建议》-第1章 基本语言要素(SamWang)...
  5. BDF开发框架的搭建(摘)
  6. 在图片上加入删除按钮
  7. 侯捷畅谈技术人生与读书感悟
  8. 奇怪的Adobe dynamic link
  9. 构建大型关系数据仓库的十大最佳实践
  10. 让你的U盘变光驱,制作USB-CDROM,用U盘安装系统