作者:tongqingliu

转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html

python基础之字典dict和集合set

字典dict

字典使用键值对存储,具有极快的查找速度。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} # 创建字典
>>> d
{'Michael': 95, 'Tracy': 85, 'Bob': 75}
>>> d['Michael'] # 字典的索引
95
>>> d['Jack'] = 90 # 为字典添加元素
>>> d['Jack']
90
>>> d['Jack'] = 88 # 更新字典中键的值
>>> d['Jack']
88
>>> d
{'Michael': 95, 'Jack': 88, 'Tracy': 85, 'Bob': 75}
>>> 'Thomas' in d # 判断字典中是否存在某个键,若存在则返回True,若不存在则返回False
False
>>> d.get('Bob') # get方法,如果key不存在,返回None,如果存在则返回对应的值
75
>>> d.get('Haha') # 不存在,返回None
>>> d.pop('Bob') # 删除Bob对应的键值对
75
>>> d
{'Michael': 95, 'Jack': 88, 'Tracy': 85}

dict内部存放的顺序和key放入的顺序没有关系。

字典的键必须是不可变对象。

字典和列表的对比

dict有以下几个特点:

  • 查找和插入的速度极快,不会随着key的增加而变慢;

  • 需要占用大量的内存,内存浪费多。

    而list相反:

  • 查找和插入的时间随着元素的增加而增加;

  • 占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法。

集合set

set和dict类似,也是一组key的集合,但不存储value。这里的集合与数学上的集合类似,其中的key不能重复。

>>> s = set([1, 2, 3]) # 通过列表创建集合
>>> s
{1, 2, 3}
>>> s = set([1, 1, 2, 2, 3, 3]) # 集合去除重复元素
>>> s
{1, 2, 3}
>>> s.add(4) # 给集合添加元素
>>> s
{1, 2, 3, 4}
>>> s.add(4) # 重复添加元素不会报错,但不会起作用
>>> s
{1, 2, 3, 4}
>>> s.remove(4) # 删除元素
>>> s
{1, 2, 3}
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2 # 求交集
{2, 3}
>>> s1 | s2 # 求并集
{1, 2, 3, 4}

参考:

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167793538255adf33371774853a0ef943280573f4d000

python基础之字典dict和集合set的更多相关文章

  1. python基础类型(字典:dict)

    字典的介绍: 字典(dict)Python中唯一的一个映射类型.他是以{}括起来的键值对组成,在dict中key是唯一的.在保存的时候,根据key来计算出一个内存地址,然后将key-value保存到这 ...

  2. python基础day6_字典dict

    数据类型划分:可变数据类型.不可变数据类型 不可变数据类型(又叫可哈希):元祖,bool ,int,str, 可变数据类型(又叫不可哈希):list,dict,set(集合) dict的key必须是不 ...

  3. python基础之字典dict

    不可变数据类型:tuple.bool.int.str --可哈希类型可变数据类型:list.dict.set --不可哈希类型dict-key 必须是不可变数据类型,可哈希dict-value 任意数 ...

  4. python中几个常见的黑盒子之“字典dict” 与 “集合set”

    这里说到"字典dict" 和 "集合set"类型,首先,先了解一下,对于python来说,标准散列机制是有hash函数提供的,对于调用一个__hash__方法: ...

  5. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  6. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  7. python入门14 字典dict

    字典dict是无序的key:value格式的数据序列 #coding:utf-8 #/usr/bin/python """ 2018-11-11 dinghanhua 字 ...

  8. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  9. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

随机推荐

  1. BackgroundWorker的DoWork方法中发生异常无法传递到RunWorkedCompleted方法

    在使用C#的BackgroundWorker时需要在UI界面上显示DoWork中发生的异常,但怎么调试都无法跳转到界面上,异常也不会传递到RunWorkerCompleted方法中(e.Error为空 ...

  2. CentOS 7安装Docker

    在虚拟机CentOS 7上安装Docker   ## 零:检查前提条件:   在Red Hat 和Red Hat系列的Linux发行版中,安装Docker所需的前提提交并不多.     ### 1.内 ...

  3. Java 第一个程序案HelloWorld例记录

    1.编辑源代码,先看代码: class HelloWorld{ public static void main(String[] args) { System.out.println("He ...

  4. 深入浅出node.js

    http://www.infoq.com/cn/articles/what-is-nodejs/

  5. Telegram学习解析系列(一):认识一下Telegram的源码

    前言: Telegram不知道有多少同行听过这玩意,或者在看它的源码.我是出于工作原因才接触到这东西,看的真是的......变方了!一个月估计刚刚找到门,还没进去多深,把自己的心得和对源码的认识以及我 ...

  6. 开源库RxJava、ButterKnife学习记录

    1. 简介 RxJava "RxJava is a Java VM implementation of Reactive Extensions: a library for composin ...

  7. 如何用jQuery实现div随鼠标移动而移动(详解)?----2017-05-12

    重点是弄清楚如何获取鼠标现位置与移动后位置,div现在位置与移动后位置: 用jQuery实现div随鼠标移动而移动,不是鼠标自身的位置!!而是div相对于之前位置的移动 代码如下:(注意看绿色部分的解 ...

  8. MYSQL CASE WHEN THEN END 用法

    SELECT qr_cash_record.*,CASE WHEN cashrecord_type = 3 THEN (SELECT product_title FROM qr_fundsupport ...

  9. STM32采集电阻触摸贴膜

    今天为了解决一个测量电阻屏压力的问题,自己直接用STM32做了一个测量电阻屏的程序(直接把触摸屏的四根线接到单片机引脚上),通过AD切换采集,采集X轴电压,Y轴电压,和压力..最后附上自己的程序 先说 ...

  10. 我总结的常用sql语句

    建表: Set sql_mode='strict_trans_tables':  存储引擎启用严格模式,非法数据值被拒绝 Create table t3(id int(4) primary key a ...