Python 字典dict 集合set
字典dict
Python内置字典,通过key-value进行存储,字典是无序的,拓展hash
names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。
用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢
>>> d = {'aa':1,'bb':2,'cc':3}
>>> d['aa'] # 可以直接根据名字来查找
1
为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
key-value的存储,是在放进去的时候必须通过key的值算出value的存放位置,这样拿的时候也是根据value的值去内存中拿
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
>>> d
{'aa': 1, 'bb': 2, 'cc': 3}
>>> d['hh']= 88
>>> d
{'aa': 1, 'bb': 2, 'cc': 3, 'hh': 88}
一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
>>> d['lal'] = 88
>>> d
{'aa': 1, 'bb': 2, 'cc': 3, 'hh': 88, 'lal': 88}
如果key不存在,dict就会报错:
避免key不存在的错误,通过in判断key是否存在
1.
>>> d
{'aa': 1, 'bb': 2, 'cc': 3, 'hh': 88, 'lal': 88}
>>> 'in' in d
False
>>> 'cc' in d
True
get()
>>> d.get('hahah') # key不存在 ,返回None 在命令行中None是不显示的
>>> d.get('hahah',-1) # 可以自定义返回值 -1
>>> d.get('hh') #key 存在,返回value
88
增加字典元素两种方法
1.
>>> dict1 = {1:223}
>>> dict1[1] = 'ahah'
- setdefault
>>> dict1.setdefault(2,'hello')
'hello'
>>> dict1
{1: 'ahah', 2: 'hello'}
>>>
删除Python字典
>>> dict1
{1: 'ahah', '1': 233234, 2: 'hello'}
>>> del dict1[1] # 用的是方括号 删除指定的key
>>> dict1
{'1': 233234, 2: 'hello'}
>>> del dict1[2]
>>> dict1
{'1': 233234}
>>> dict1.pop('1') # 用的pop()
233234
>>> dict1
{}
>>>
清空字典
dict1.clear()
删除字典对象
del dict1
集合set
set同字典相比,只有key,没有value.
Python 字典dict 集合set的更多相关文章
- python 字典dict - python基础入门(15)
前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict. python中的字典可与字符串/列表/元组不同,因为 ...
- python字典dict的增、删、改、查操作
## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...
- Python 字典 dict() 函数
描述 Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. 语法 dict() 函数函数语法: dict(key/value) 参数说明: ...
- 'dict_values' object does not support indexing, Python字典dict中由value查key
Python字典dict中由value查key 众所周知,字典dict最大的好处就是查找或插入的速度极快,并且不想列表list一样,随着key的增加越来越复杂.但是dict需要占用较大的内存空间,换句 ...
- Python — 字典dict 和 集合set
字典dict : dict和set的key都是不可变对象 对于不变对象来说,调用对象自身的任意方法,也不会改变对象自身的内容.相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可 ...
- 流畅的python 字典和集合
介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...
- Python 字典Dict概念和操作
# 字典概念:无序的, 可变的键值对集合 # 定义 # 方式1 # {key: value, key: value...} # 例如 # {"name": "xin&qu ...
- 转:Python字典与集合操作总结
转自:http://blog.csdn.net/business122/article/details/7537014 一.创建字典 方法①: >>> dict1 = {} > ...
- Python字典和集合
Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...
随机推荐
- jQuery获取table当前所在行
$("div tbody tr").click(function() { var rows = $(this).prevAll().length + 1;//行号 ...
- Jmeter之HTTP request
1.下载Jmeter http://jmeter.apache.org/download_jmeter.cgi 2.解压,在bin目录下找到jmeter.bat,并双击打开. 3.添加线程组 4.添加 ...
- ES6笔记总结
常用命令 函数的rest参数和扩展 promise使用 module.exports和Es6 import/export的使用 function sum(x,y,z){ let total = 0; ...
- Lightoj1012【DFS】
题意: 输出和' @ '相连有多少个' . '包括' @ ',' # '代表墙不能走: 思路: 基础DFS,找到起点,然后跑一下DFS就好了: #include<cstdio> #incl ...
- Html5shiv ---- 让IE低版本浏览器识别并支持HTML5标签
Html5shiv.js是针对IE浏览器的 javaScript 补丁,作用如题 该脚本的下载链接 使用使在head标签中使用script标签引用即可
- elasticsearch bigdesk 安装和使用
http://blog.csdn.net/laigood/article/details/8207990
- 如何利用python制作微信好友头像照片墙?
这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...
- for(;;)
for(;;)就是一个for循环,只是循环的条件没有写到for语句当中,退出条件在for循环体内,要不就是死循环.
- 关于presentViewController 后调用pushViewController
错误代码: LoginViewController *loginVc = [[LoginViewController alloc] int]; [self presentViewController ...
- ZOJ Course Selection System DP
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5565 Course Selection System Time ...