python 数据结构
一.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中被认为是两个对象。
- class Item(object):
- def __init__(self, foo, bar):
- self.foo = foo
- self.bar = bar
- def __repr__(self):
- return "Item(%s, %s)" % (self.foo, self.bar)
- print set([Item('1', '2'), Item('1', '2')])
- # 输出: set([Item(1, 2), Item(1, 2)])
数据结构中HASH表的设计思路是:
- 被插入元素根据hash值决定插入那个桶(通常一个数组)中
- 新插入元素根据的equals方法依次比较桶内元素,以确定是否已经存在
在python中如果我们自定义class,则需要添加__hash__和__eq__两个方法,前者用于决定当前元素在哪个桶,后者决定当前元素是否在桶中已经存在。
修改后的code如下:
- class Item(object):
- def __init__(self, foo, bar):
- self.foo = foo
- self.bar = bar
- def __repr__(self):
- return "Item(%s, %s)" % (self.foo, self.bar)
- def __eq__(self, other):
- if isinstance(other, Item):
- return ((self.foo == other.foo) and (self.bar == other.bar))
- else:
- return False
- def __hash__(self):
- return hash(self.foo + " " + self.bar)
- print set([Item('1', '2'), Item('1', '2')])
- # 输出:set([Item(1, 2)])
转载于:https://www.cnblogs.com/lgx-fighting/p/9379162.html
python 数据结构相关推荐
- python3 namedtuple_你不能低估的Python数据结构Namedtuple(二)
上篇你不能低估的Python数据结构Namedtuple(一)讲了namedtuple的一些基本用法,本篇继续. namedtuples和数据类(Data Class)之间有什么区别? 功能 在Pyt ...
- python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...
python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...
- python数据结构 树_python数据结构之二叉树的建立实例
先建立二叉树节点,有一个data数据域,left,right 两个指针域 复制代码 代码如下: # -*- coding: utf - 8 - *- class TreeNode(object): d ...
- python数据结构包括什么_Python中的数据结构详解
概述 在深入研究数据科学和模型构建之前,Python中的数据结构是一个需要学习的关键内容 了解Python提供的不同数据结构,包括列表.元组等 介绍 数据结构听起来是一个非常直截了当的话题,但许多数据 ...
- python数据结构树和二叉树,python数据结构树和二叉树简介
一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树. 树的递归定义: 树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树 ...
- python数据结构推荐书-关于数据结构,有哪些不错的参考书推荐?
学习编程,数据结构是你必须要掌握的基础知识,那么数据结构到底是什么呢? 其实数据结构就是用来描述计算机里存储数据的一种数学模型,因为计算机里要存储很多乱七八糟的数据,所以也需要不同的数据结构来描述. ...
- CodeSalt | Python数据结构的实现 — 链表
Python数据结构实现-链表 1. 简单介绍 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Point ...
- Python数据结构——tuple
tuple 元组 什么是tuple 元组是一种和列表非常相似的线性数据结构,也支持不同的数据类型. 最大的区别就是元组一旦创建不可改变,和string一样,所有改变元组内容的操作都会返回一个新的元组. ...
- Python数据结构——list
list 列表 什么是list 列表是Python中特有的一种线性数据结构,列表是可变的,有序的,我们可以用选择操作符来改变任意位置的值,和数组不同的是,列表可以同时保存不同类型的元素(异构). 在C ...
- Python数据结构——array
array 数组 array是什么 一般来说,array基本是所有程序语言都有的一种基础线性结构,元素以特定的顺序存储在一段连续的内存中. 在Python中其实也有array这种数据结构,和其他语言的 ...
最新文章
- [kubernetes] 证书详细总结
- Moblin在MID软件系统中扮演三个关键角色........
- 华为杯数学建模2020什么时候出结果_关于组织参加“华为杯”第十七届中国研究生数学建模竞赛通知...
- ubuntu 16.04 安装ros kinetic
- warning C4819: The file contains a character that cannot be represented in the current code page
- jmeter性能测试_JMeter性能测试,接口测试,最全的JMeter资料,共计3.16G
- HDU 1789 Doing Homework again(贪心)
- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)Call Stack
- Android进阶之路(快速进阶第二天)RxAndroid使用
- RGB888和RGB565颜色对照表
- 学生信息管理系统—流程图
- html 调用es2015模块,给大家分别介绍一下CommonJS和ES2015的import
- python实用的语法和函数
- PPT模板下载地址汇总(免费)
- 51单片机设计简易计算机原理,基于AT89C51单片机简易计算器的设计(DOC).docx
- 关于手机端input获取焦点呼起键盘背景图片挤压解决方案
- 苹果选了天猫 天猫成了618
- 分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践
- PL/SQL Developer中用dbms_output.put_line输出
- Perl语言入门笔记 第六章 哈希(hash)
热门文章
- 只会python好找工作吗-转行去培训班学Python好找工作吗?老男孩教育
- python中文教程-中谷python中文视频教程(全38集)
- python里面temp是啥-Python tempfile模块学习笔记(临时文件)
- python与excel结合-Python与Excel之间的交互
- 关于python语言、下列说法不正确的是-关于 Python语言,哪个说法是不正确的?
- 使用Callable来获取数组的最大值
- LeetCode Interleaving String(动态规划)
- LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
- 网络编程学习笔记(UDP的connect函数)
- 题目1191:矩阵最大值