Python中的集合类型知识讲解

集合类型
        数学上,,把set称做由不同的元素组成的集合,集合(set)的成员通常被称做集合元素(set elements)。Python把这个概念引入到它的集合类型对象里。集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。数学集合转为Python的集合对象很有效,集合关系测试和union、intersection等操作符在Python里也同样如我们所预想地那样工作。
        和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。
        集合(sets)有两种不同的类型:可变集合(set)和不可变集合(frozenset)。对可变集合(set),可以添加和删除元素,对不可变集合(frozenset)则不允许这样做。注意:可变集合(set)不是可哈希的,因此既不能用做字典的键也不能做其他集合中的元素。不可变集合
(frozenset)则正好相反,即它们有哈希值,能被用做字典的键或是作为集合中的一个成员。
         集合操作符和关系符号:

  集合类型的实际操作:

(1)如何创建集合类型和给集合赋值
        集合与列表( [ ] )和字典( { } ) 不同,没有特别的语法格式。列表和字典可以分别用他们自己的工厂方法 list() 和 dict() 创建,这也是集合被创建的唯一方法:用集合的工厂方法set()和frozenset()。

  >>> s = set('cheeseshop')
  >>> s
  set(['c', 'e', 'h', 'o', 'p', 's'])
  >>> t = frozenset('bookshop')
  >>> t
  frozenset(['b', 'h', 'k', 'o', 'p', 's'])
  >>> len(s), len(t)
  (6, 6)
  >>> s == t
  False

(2)如何访问集合中的值
       可以遍历查看集合成员或检查某项元素是否是一个集合中的成员。

  >>> 'k' in t
  True
  >>> for i in s:
  ...   print i
  ...
  c
  e
  h
  o
  p
  s

(3)如何更新集合
         用各种集合内建的方法和操作符添加和删除集合的成员。只有可变集合能被修改,试图修改不可变集合会引发异常。
[html] view plaincopy在CODE上查看代码片派生到我的代码片

  >>> s.add('z')
  >>> s
  set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
  >>> s.update('pypi')
  >>> s
  set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])
  >>> s.remove('z')
  >>> s -= set('pypi')
  >>> s
  set(['c', 'e', 'h', 'o', 's'])

(4)如何删除集合中的成员和集合
        删除集合成员remove()内建方法。删除集合本身,可以像删除任何Python对象一样,令集合超出它的作用范围或调用del将它们直接清除出当前的名字空间。如果它的引用计数为零,也会被标记以便被垃圾回收。如del s。

实例:
用集合的工厂方法 set()和 frozenset():

  >>> s = set('cheeseshop')
  >>> s
  set(['c', 'e', 'h', 'o', 'p', 's'])
  >>> t = frozenset('bookshop')
  >>> t
  frozenset(['b', 'h', 'k', 'o', 'p', 's'])
  >>> type(s)
  <type 'set'>
  >>> type(t)
  <type 'frozenset'>

如何更新集合用各种集合内建的方法和操作符添加和删除集合的成员:

  >>> s.add('z')
  >>> s
  set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
  >>> s.update('pypi')
  >>> s
  set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])
  >>> s.remove('z')
  >>> s
  set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])
  >>> s -= set('pypi')
  >>> s
  set(['c', 'e', 'h', 'o', 's']) 

删除集合

  del s

成员关系 (in, not in)

  >>> s = set('cheeseshop')
  >>> t = frozenset('bookshop')
  >>> 'k' in s
  False
  >>> 'k' in t
  True
  >>> 'c' not in t
  True

集合等价/不等价

  >>> s == t
  False
  >>> s != t
  True
  >>> u = frozenset(s)
  >>> s == u
  True
  >>> set('posh') == set('shop')
  True

差补/相对补集( – )两个集合(s 和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合s,而不属
于集合t。差符号有一个等价的方法,

  difference().
  >>> s - t
  set(['c', 'e'])

对称差分( ^ ):对称差分是集合的XOR以上文章就是Python字典对集合类型的实际应用步骤。

(0)

相关推荐

  • python基础知识小结之集合

    集合 特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引.此外,集合中的元素不能重复.  定义 set() -> new empty set object set(iterable) -> new set object s = {0} 应用:去重 >>> lst1 = [1,1,2,2,3,4,2] >>> list(set(lst1)) [1, 2, 3, 4] 常用操作 集合支持一系列标准操作,包

  • Python通过递归遍历出集合中所有元素的方法

    本文实例讲述了Python通过递归遍历出集合中所有元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: '''''通过递归遍历出集合中的所有元素 Created on 2013-9-29 @author: L.Eric '''  def print_List(list_nums):      for each_item in list_nums :           if isinstance(each_item,list):              print_Lis

  • Python中集合类型(set)学习小结

    set 是一个无序的元素集合,支持并.交.差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引.分片等类序列的操作. 初始化 复制代码 代码如下: s0 = set() d0 = {} s1 = {0} s2 = {i % 2 for i in range(10)} s = set('hi') t = set(['h', 'e', 'l', 'l', 'o']) print(s0, s1, s2, s, t, type(d0)) 运行结果: 复制代码 代码如下: set() {

  • Python中集合的内建函数和内建方法学习教程

    集合内建函数和内建方法 (1)标准类型函数        len():把集合作为参数传递给内建函数 len(),返回集合的基数(或元素的个数). (2)集合类型工厂函数        set()和 frozenset()工厂函数分别用来生成可变和不可变的集合.如果不提供任何参数,默认会生成空集合.如果提供一个参数,则该参数必须是可迭代的,即一个序列或迭代器或支持迭代的一个对象,例如一个文件或一个字典. (3)方法(所有的集合方法) s.issubset(t)                  如

  • Python set集合类型操作总结

    Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决 复制代码 代码如下: x & y & z # 交集 2.去重 复制代码 代码如下: >>> lst = [1,2,3,4,1] >>> print list(set(lst)) [1, 2, 3, 4] 用法 注意se

  • 跟老齐学Python之集合(set)

    回顾一下已经了解的数据类型:int/str/bool/list/dict/tuple 还真的不少了. 不过,python是一个发展的语言,没准以后还出别的呢.看官可能有疑问了,出了这么多的数据类型,我也记不住呀,特别是里面还有不少方法. 不要担心记不住,你只要记住爱因斯坦说的就好了. 爱因斯坦在美国演讲,有人问:"你可记得声音的速度是多少?你如何记下许多东西?" 爱因斯坦轻松答道:"声音的速度是多少,我必须查辞典才能回答.因为我从来不记在辞典上已经印着的东西,我的记忆力是用来

  • Python中的集合类型知识讲解

    集合类型         数学上,,把set称做由不同的元素组成的集合,集合(set)的成员通常被称做集合元素(set elements).Python把这个概念引入到它的集合类型对象里.集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.数学集合转为Python的集合对象很有效,集合关系测试和union.intersection等操作符在Python里也同样如我们所预想地那样工作.         和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得

  • 深入解析Python中的集合类型操作符

    (1)标准类型操作符(所有的集合类型) 成员关系 (in, not in)         就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员. 集合等价/不等价         等价/不等价被用于在相同或不同的集合之间做比较.两个集合相等是指,对每个集合而言,当且仅当其中一个集合中的每个成员同时也是另一个集合中的成员.也可以说每个集合必须是另一个集合的一个子集, 即s <= t 和s>= t 的值均为真(True),或(s <= t and s>

  • 浅谈python中的数字类型与处理工具

    python中的数字类型工具 python中为更高级的工作提供很多高级数字编程支持和对象,其中数字类型的完整工具包括: 1.整数与浮点型, 2.复数, 3.固定精度十进制数, 4.有理分数, 5.集合, 6.布尔类型 7.无穷的整数精度 8.各种数字内置函数及模块. 基本数字类型 python中提供了两种基本类型:整数(正整数金额负整数)和浮点数(注:带有小数部分的数字),其中python中我们可以使用多种进制的整数.并且整数可以用有无穷精度. 整数的表现形式以十进制数字字符串写法出现,浮点数带

  • python中numpy.empty()函数实例讲解

    在使用python编程的过程中,想要快速的创建ndarray数组,可以使用numpy.empty()函数.numpy.empty()函数所创建的数组内所有元素均为空,没有实际意义,所以它也是创建数组最快的方法.本文介绍python中numpy.empty()函数的使用方法. 1.numpy.empty()函数 这个函数可以创建一个没有任何具体值的ndarray数组,是创建数组最快的方法. 根据给定的维度和数值类型返回一个新的数组,其元素不进行初始化. 2.用法 import numpy as n

  • python Protobuf定义消息类型知识点讲解

    让我们从一个非常简单的例子开始.假设您想要定义"搜索请求"的消息格式.每个请求包含一个查询字符串.您对查询结果感兴趣的页数以及每页上有多少个查询结果. 可以采用如下的方式来定义消息类型的.proto文件了: syntax = "proto3"; // 声明使用 proto3 语法 message SearchRequest { string query = 1; // 每个字段都要指定数据类型 int32 page_number = 2; // 这里的数字2 是标识

  • 浅析python中的set类型

    目录 一. 定义 二. 创建set 1. 直接使用{}创建新的set并初始化 2. 使用set关键字来创建 3. 创建空的set 三. 基本操作 1. 重复的操作在set中自动被过滤 2. 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果 3. 通过 remove(key) 方法可以删除元素 4. 两个set可以做数学意义上的交集.并集等操作 四. 练习 一. 定义 set是一个无序且不重复的元素集合 set和dict类似,是一组key的集合,但不存储value set

  • python中的集合及集合常用的使用方法

    目录 python中的集合 什么是集合? 集合与列表的区别 创建空集合 通过集合给列表去重 集合的增删改 集合的add函数 集合的update函数 集合的remove函数 集合的clear函数 集合的del函数 python中的集合 什么是集合? 集合是一个无序的不重复元素序列 常用来对两个列表进行交并差的处理 集合与列表一样,支持所有数据类型 集合与列表的区别 通过set函数来创建集合,不能使用{}来 创建空集合 a_set = set() # 空集合 a_set = set([1, 2, 3

  • 自己模拟写C++中的String类型实例讲解

    下面是模拟实现字符串的相关功能,它包括一下功能: String(const char * s);//利用字符串来初始化对象 String(); //默认构造函数 String(const String & s);//复制构造函数,利用String类型来初始化对象 ~String(); //析构函数 int length(); //返回String类型中字符串的长度 String & operator=(const String & s);//重载=运算符. String &

  • 对python中的logger模块全面讲解

    logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的Python应用.同样这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP.GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式.下文我将主要介绍如何使用文件方式记录log. logging模块包括logger,handler,filter,formatter这四个基本概念. logging模块与log4

  • requests在python中发送请求的实例讲解

    当我们想给服务器发送一些请求时,可以选择requests库来实现.相较于其它库而言,这种库的使用还是非常适合新手使用的.本篇要讲的是requests.get请求方法,这里需要先对get请求时的一些参数进行学习,在掌握了基本的用法后,可以就下面的requests.get请求实例进一步的探究. 1.get请求的部分参数 (1) url(请求的url地址,必需 ) import requests url="http://www.baidu.com" resp=requests.get(url

随机推荐