一.Python 集合set()添加删除、交集、并集、集合操作详解

Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set集合set添加集合删除交集并集差集的操作都是非常实用的方法。

1.python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合。
>>>set('boy')
set(['y', 'b', 'o'])

set()的值不能重复

2.集合添加、删除

python 集合的添加有两种常用方法,分别是add和update。
集合add方法:是把要传入的元素做为一个整个添加到集合中,例如:
>>> a = set('boy')
>>> a.add('python')
>>> a
set(['y', 'python', 'b', 'o'])

3.集合update方法:是把要传入的元素拆分,做为个体传入到集合中,例如:
>>> a = set('boy')
>>> a.update('python')
>>> a
set(['b', 'h', 'o', 'n', 'p', 't', 'y'])

4.集合删除操作方法:remove
set(['y', 'python', 'b', 'o'])
>>> a.remove('python')
>>> a
set(['y', 'b', 'o'])

5.python set() 集合操作符号、数学符号

集合的交集、合集(并集)、差集,了解python集合set与列表list的这些非常好用的功能前,要先了解一些集合操作符号

可变集合python set是www.iplaypy.com玩蛇网python学习交流平台,初期python学习中比较能接触到的。像列表、字典、字符串这类可迭代的对像都可以做为集合的参数。set集合是无序的,不能通过索引和切片来做一些操作。

python中set集合如何决定是否重复?

看下面代码,两个值相同的Item对象,添加到set中被认为是两个对象。

  1. class Item(object):
  2. def __init__(self, foo, bar):
  3. self.foo = foo
  4. self.bar = bar
  5. def __repr__(self):
  6. return "Item(%s, %s)" % (self.foo, self.bar)
  7. print set([Item('1', '2'), Item('1', '2')])
  8. # 输出: set([Item(1, 2), Item(1, 2)])

数据结构中HASH表的设计思路是:

  1. 被插入元素根据hash值决定插入那个桶(通常一个数组)中
  2. 新插入元素根据的equals方法依次比较桶内元素,以确定是否已经存在

在python中如果我们自定义class,则需要添加__hash__和__eq__两个方法,前者用于决定当前元素在哪个桶,后者决定当前元素是否在桶中已经存在。

修改后的code如下:

  1. class Item(object):
  2. def __init__(self, foo, bar):
  3. self.foo = foo
  4. self.bar = bar
  5. def __repr__(self):
  6. return "Item(%s, %s)" % (self.foo, self.bar)
  7. def __eq__(self, other):
  8. if isinstance(other, Item):
  9. return ((self.foo == other.foo) and (self.bar == other.bar))
  10. else:
  11. return False
  12. def __hash__(self):
  13. return hash(self.foo + " " + self.bar)
  14. print set([Item('1', '2'), Item('1', '2')])
  15. # 输出:set([Item(1, 2)])

转载于:https://www.cnblogs.com/lgx-fighting/p/9379162.html

python 数据结构相关推荐

  1. python3 namedtuple_你不能低估的Python数据结构Namedtuple(二)

    上篇你不能低估的Python数据结构Namedtuple(一)讲了namedtuple的一些基本用法,本篇继续. namedtuples和数据类(Data Class)之间有什么区别? 功能 在Pyt ...

  2. python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...

    python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...

  3. python数据结构 树_python数据结构之二叉树的建立实例

    先建立二叉树节点,有一个data数据域,left,right 两个指针域 复制代码 代码如下: # -*- coding: utf - 8 - *- class TreeNode(object): d ...

  4. python数据结构包括什么_Python中的数据结构详解

    概述 在深入研究数据科学和模型构建之前,Python中的数据结构是一个需要学习的关键内容 了解Python提供的不同数据结构,包括列表.元组等 介绍 数据结构听起来是一个非常直截了当的话题,但许多数据 ...

  5. python数据结构树和二叉树,python数据结构树和二叉树简介

    一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树. 树的递归定义: 树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树 ...

  6. python数据结构推荐书-关于数据结构,有哪些不错的参考书推荐?

    学习编程,数据结构是你必须要掌握的基础知识,那么数据结构到底是什么呢? 其实数据结构就是用来描述计算机里存储数据的一种数学模型,因为计算机里要存储很多乱七八糟的数据,所以也需要不同的数据结构来描述. ...

  7. CodeSalt | Python数据结构的实现 — 链表

    Python数据结构实现-链表 1. 简单介绍 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Point ...

  8. Python数据结构——tuple

    tuple 元组 什么是tuple 元组是一种和列表非常相似的线性数据结构,也支持不同的数据类型. 最大的区别就是元组一旦创建不可改变,和string一样,所有改变元组内容的操作都会返回一个新的元组. ...

  9. Python数据结构——list

    list 列表 什么是list 列表是Python中特有的一种线性数据结构,列表是可变的,有序的,我们可以用选择操作符来改变任意位置的值,和数组不同的是,列表可以同时保存不同类型的元素(异构). 在C ...

  10. Python数据结构——array

    array 数组 array是什么 一般来说,array基本是所有程序语言都有的一种基础线性结构,元素以特定的顺序存储在一段连续的内存中. 在Python中其实也有array这种数据结构,和其他语言的 ...

最新文章

  1. [kubernetes] 证书详细总结
  2. Moblin在MID软件系统中扮演三个关键角色........
  3. 华为杯数学建模2020什么时候出结果_关于组织参加“华为杯”第十七届中国研究生数学建模竞赛通知...
  4. ubuntu 16.04 安装ros kinetic
  5. warning C4819: The file contains a character that cannot be represented in the current code page
  6. jmeter性能测试_JMeter性能测试,接口测试,最全的JMeter资料,共计3.16G
  7. HDU 1789 Doing Homework again(贪心)
  8. Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)Call Stack
  9. Android进阶之路(快速进阶第二天)RxAndroid使用
  10. RGB888和RGB565颜色对照表
  11. 学生信息管理系统—流程图
  12. html 调用es2015模块,给大家分别介绍一下CommonJS和ES2015的import
  13. python实用的语法和函数
  14. PPT模板下载地址汇总(免费)
  15. 51单片机设计简易计算机原理,基于AT89C51单片机简易计算器的设计(DOC).docx
  16. 关于手机端input获取焦点呼起键盘背景图片挤压解决方案
  17. 苹果选了天猫 天猫成了618
  18. 分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践
  19. PL/SQL Developer中用dbms_output.put_line输出
  20. Perl语言入门笔记 第六章 哈希(hash)

热门文章

  1. 只会python好找工作吗-转行去培训班学Python好找工作吗?老男孩教育
  2. python中文教程-中谷python中文视频教程(全38集)
  3. python里面temp是啥-Python tempfile模块学习笔记(临时文件)
  4. python与excel结合-Python与Excel之间的交互
  5. 关于python语言、下列说法不正确的是-关于 Python语言,哪个说法是不正确的?
  6. 使用Callable来获取数组的最大值
  7. LeetCode Interleaving String(动态规划)
  8. LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
  9. 网络编程学习笔记(UDP的connect函数)
  10. 题目1191:矩阵最大值