(一)set和frozenset类型

(1)set

set是一个无序集合,set中不允许有相同的元素。set无法保存元素的位置和插入的顺序。set不支持索引、切片操作。set 集合的内容可以通过add() 和 remove()方法进行修改。

>>> s = set(['Java', 'Python', 'Java', 'Java'])
>>> list(s)
['Python', 'Java']
>>> s[0]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
>>> s[0: 2]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'set' object is not subscriptable

(2)frozenset

frozenset集合中的内容一旦创建完成以后就不能修改。

(3)构造方法

  • class set([iterable]):
  • class frozenset([iterable]):

如果参数iterable没有提供,则创建一个空的集合。

(4)set和frozenset共同的操作方法

1.len(s):返回集合中元素的个数。

>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> len(s)
2

2.x in s和x not in s:判断x是否是集合x中的元素。

>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> 'Java' in s
True
>>> 'Python' in s
True
>>> 'PHP' in s
False

3.s.isdisjoint(other):当集合s中没有一个元素和集合other中的其中一个元素相同时返回True,即当集合s和other的交集为空集时返回True。

>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> s1 = set(['Java', 'C++'])
>>> s.isdisjoint(s1)
False
>>> s2 = (['C++', 'C#'])
>>> s.isdisjoint(s2)
True
>>> s3 = set()
>>> s.isdisjoint(s3)
True

4.s.issubset(other) 或 s <= other:判断集合s是否是集合other的子集。

>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> s1 = set(['Java', 'C++'])
>>>> s2 = set(['Java', 'Python'])
>>> s.issubset(s2)
True
>>> s3 = set()
>>> s.issubset(s1)
False
>>> s.issubset(s2)
False
>>> s3.issubset(s)
True
>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C#'])
>>> s < s1
True
>>> s <= s1
True
>>> s1 <= s
False

5.set < other:判断集合set是否是集合other的子集。

>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C#'])
>>> s < s1
True
>>> s2 = set(['Java', 'Python', 'C#'])
>>> s1 < s2
False

6.s.issuperset(other) 或 s >= other:判断集合other中的所有元素是否都在集合s中。

>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C#'])
>>> s1.issuperset(s)
True
>>> s.issuperset(s1)
False
>>> s2 = set(['Java', 'Python', 'C#'])
>>> s1.issuperset(s2)
True
>>> fs = frozenset(['Java', 'Python'])
>>> fs1 = frozenset(['Java', 'Python', 'PHP'])
>>> fs1.issuperset(fs)
True
>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C#'])
>>> s2 = set(['Java', 'Python', 'C#'])
>>> s1 >= s
True
>>> s >= s1
False
>>> s1 >= s2
True

7.set > other:判断集合other是否是集合set的子集。

>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C#'])
>>> s1 > s
True
>>> s1 > s2
False

8.s.union(*others) 或 set | other | …:返回集合s和其他集合的并集。

>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C++', 'Perl'])
>>> s2 = set(['android', 'HTML'])
>>> se = union(s, s1, s2)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'union' is not defined
>>> s.union(s1, s2)
{'C++', 'Python', 'HTML', 'Java', 'android', 'Perl'}
>>> se = s.union(s1, s2)
>>> type(se)
<class 'set'>
>>> list(se)
['C++', 'Python', 'HTML', 'Java', 'android', 'Perl']
>>> s | s1 | s2
{'C++', 'Python', 'HTML', 'Java', 'android', 'Perl'}

9.intersection(*others) 或 set & other & …:

>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C++', 'Perl'])
>>> s2 = set(['android', 'HTML'])
>>> s.intersection(s1)
{'Python', 'Java'}
>>> s.intersection(s1, s2)
set()
>>> s & s1
{'Python', 'Java'}

10.s.difference(*others) 或 s - other - …:返回由存在于集合s而不存在于其他集合的元素组成的新集合。

>>> s = set(['Java', 'Python'])
>>> s1 = set(['Java', 'Python', 'C++', 'Perl'])
>>> s2 = set(['C++'])
>>> s - s1
set()
>>> s1 - s
{'C++', 'Perl'}
>>> s.difference(s1)
set()
>>> s1.difference(s)
{'C++', 'Perl'}
>>> s1 - s - s2
{'Perl'}

11.s.symmetric_difference(other) 或 s ^ other:返回集合s和集合other的并集减去交集组成的集合。

>>> list(s)
['Python', 'Java']
>>> list(s1)
['C++', 'Python', 'Java', 'Perl']
>>> list(s2)
['C++']
>>> s.symmetric_difference(s1)
{'C++', 'Perl'}
>>> s ^ s1
{'C++', 'Perl'}
>>> s ^ s2
{'C++', 'Python', 'Java'}

12.s.copy():返回集合s的复制集。

>>> list(s)
['Python', 'Java']
>>> c = s.copy()
>>> type(c)
<class 'set'>
>>> list(c)
['Python', 'Java']

(5)只属于set的方法

1.s.update(*others) 或 set |= other | …:更新集合s,把其他集合中的元素都添加到集合s中。

>>> s = set(['Java'])
>>> s1 = set(['Python', 'PHP'])
>>> s.update(s1)
>>> list(s)
['Java', 'Python', 'PHP']
>>> s2 = set(['C++', 'C#'])
>>> s |= s2
>>> list(s)
['C++', 'Python', 'Java', 'C#', 'PHP']

2.s.intersection_update(*others) 或 set &= other & …:用s和其他集合的交集更新集合s。

>>> s = set(['Python', 'PHP'])
>>> s1 = set(['Python', 'Android'])
>>> s.intersection_update(s1)
>>> list(s)
['Python']
>>> s2 = set(['Python', 'Perl', 'Java'])
>>> s &= s2
>>> list(s)
['Python']
>>> s3 = set(['Perl', 'Java'])
>>> s &= s3
>>> list(s)
[]

3.s.difference_update(*others) 或 set -= other | …:从集合s中删除s和其他集合的交集。

>>> s = set(['Java', 'Python', 'Perl'])
>>> s1 = set(['Java'])
>>> s.difference_update(s1)
>>> list(s)
['Perl', 'Python']
>>> s2 = set(['Java', 'Perl', 'Python'])
>>> s.difference_update(s2)
>>> list(s)
[]
>>> s2 -= s1
>>> list(s2)
['Perl', 'Python']
>>>

4.s.symmetric_difference_update(other) 或 set ^= other:用集合s和other的并集减去交集的结果更新集合s。

>>> s = set(['Java', 'Perl', 'Python'])
>>> s1 = set(['Perl', 'Python'])
>>> s.symmetric_difference_update(s1)
>>> list(s)
['Java']
>>> s1.symmetric_difference_update(s)          #此时集合s=['Java']
>>> list(s1)
['Java', 'Perl', 'Python']
>>> s ^= set(['Java'])
>>> list(s)
[]

5.s.add(elem):向集合s中添加一个元素。

>>> s = set(['Java'])
>>> s.add(['Perl'])
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> s.add('Perl')
>>> list(s)
['Java', 'Perl']

6.s.remove(elem):从集合s中删除元素elem。如果集合中没有元素elem,则抛出KeyError异常。

>>> s.remove('Perls')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'Perls'
>>> s.remove('Perl')
>>> list(s)
['Java']

7.s.discard(elem):当参数elem是集合s中的元素时,删除元素该元素。否则不执行任何操作。

>>> s = set(['Python', 'PHP'])
>>> s.discard('C++')
>>> list(s)
['Python', 'PHP']
>>> s.discard('PHP')
>>> list(s)
['Python']

8.s.pop():从集合s中任意删除一个元素,返回被删除的元素值。如果集合s为空,则抛出KeyError异常。

>>> s = set(['Python', 'PHP'])
>>> s.pop()
'Python'
>>> list(s)
['PHP']
>>> s.pop()
'PHP'
>>> list(s)
[]
>>> s.pop()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'pop from an empty set'

9.s.clear():Remove all elements from the set。

>>> s = set(['Python', 'PHP'])
>>> s.clear()
>>> list(s)
[]

Python常见数据类型和方法相关推荐

  1. python查看数据类型的方法_pycharm下查看python的变量类型和变量内容的方法

    pycharm下查看python的变量类型和变量内容的方法 用过Matlab的同学基本都知道,程序里面的变量内容可以很方便的查看到,但python确没这么方便,对于做数据处理的很不方便,其实不是没有这 ...

  2. python中数据类型判断方法(学习笔记)

    type 数据类型 1.type(对象) :就是一个最实用又简单的查看数据类型的方法 eg1: a=3 print(type(a)) 结果 <class 'int'>          # ...

  3. Python常见数据类型之Number、String、List(1)

    目录 一.Number(数字) 二.String(字符串) 三.List(列表) Python3 的六个标准数据类型: 不可变数据(3 个):Number(数字).String(字符串).Tuple( ...

  4. Python -- 常见错误解决方法记录

    1. 错误信息: ERROR: Could not find a version that satisfies the requirement pytz (from django<1.12) ( ...

  5. Python——常见数据类型的调试笔记(“如何通过Debug信息判断数据类型”)

    1 前言 今天在调试MMDetection的时候,遇到一个问题,我想看看某个其中"result"(也就是模型输出的检测结果)的数据类型, 然后看到了这样的输出, 感觉好像从来没有见 ...

  6. Python常见的魔方方法

    1.doc 作用:查看文档字符串(DocStrings),用于解释文档程序,帮助你的程序文档更加简单易懂 使用:使用 doc(注意双下划线) def func():""" ...

  7. linux python 安装失败,Linux下面安装Python常见错误解决方法

    1.升级Python导致yum无法使用,报错No module named yum Please install a package which provides this module, or... ...

  8. python判断字符类型编程_Python检测数据类型的方法总结

    我们在用python进行程序开发的时候,很多时候我们需要检测一下当前的变量的数据类型.比如需要在使用字符串操作函数之前先检测一下当前变量是否是字符串.下面小编给大家分享一下在python中如何检测数据 ...

  9. python判断数据_python判断数据类型的方法

    python判断数据类型的方法 发布时间:2020-08-19 15:23:59 来源:亿速云 阅读:96 作者:小新 小编给大家分享一下python判断数据类型的方法,相信大部分人都还不怎么了解,因 ...

最新文章

  1. JAVA程序禁用Hbase中的表_HBase禁用表
  2. java吧王者_java单排上王者!(一) java内存
  3. BDB (Berkeley DB)数据库简单介绍(转载)
  4. 迅速重载nginx脚本
  5. java 根据类名示例化类_Java LocalDateTime类| AdjustInto()方法与示例
  6. 20181225 基于TCP/IP和基于UDP/IP的套接字编程
  7. 作为一位75后的职场宝妈
  8. springmvc中@PathVariable和@RequestParam的区别(百度收集)
  9. PHP常用函数速查表(转载)
  10. 简易vbs脚本实现在浏览器自动刷新网页。
  11. qemuuser模式运行linux,qemu两种上网方式
  12. 中台建设利器-SPI插件机制
  13. kali流量转发后依然断网_虚拟运营商流量卡列表
  14. 沈寅鑫银行内训实战专家
  15. 深睿医疗肺部疾病智能解决方案:针对新冠肺炎辅助诊断的专门研发 | 百万人学AI评选
  16. 梦兴阁给我生活带来的改变
  17. 图灵计算机科学的奠基人英文,阿兰.图灵被认为是计算机科学的奠基人,他的主要贡献是:...
  18. 第一章 基础 (续 在IIS中寄宿服务)
  19. Chainlink——白皮书简析(whitepaper v2)
  20. 华为云挂载盘配置挂载

热门文章

  1. cad拉伸怎么用_cad缩放怎么用?cad怎么按比例缩放图形?
  2. Unity手游实战:从0开始SLG——客户端技术选型
  3. 另一个微软的建立——投资三维因特网(转)
  4. 寻找跨越100年的投资策略
  5. 写的一款LRC格式歌词编辑软件 (ManeLrc) 欢迎下载
  6. 开发工具篇第八讲:阿里云OSS对象存储服务
  7. Oracle 创建、暂停、更改、删除 定时任务job
  8. 火山PC锐浪报表使用教程4(Grid++Report)
  9. 计算机随机存储器缩写,“RAM”是“Random Access Memory”的缩写,意思是“随机存取存储器”...
  10. ◎不使用三方软件,实现电脑自动关机