dict

dict是dictionary的缩写,python内置了字典,在其他语言中也称为map,使用键值对储存,具有极快的查找速度。

如果是只用list来实现,就需要两个list,先在第一个list中查找,找到之后再到另一个list中查找,显然这样速度很慢。而且list达到很长,耗时就很长很长。。。

names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]

因为一个key只对应一个value,如果多次针对一个key赋值,那么前面的key的value就会被覆盖。

还有如果key不存在,就会报错,所以我们需要提前检查key是否存在。

删除一个key:使用pop(key)方法,相对应的value也会被删除。

dict可以用在需要告诉查找的很多地方,牢记的是,dict 的key必须是不可变对象,即string,tuple,numbers。

dict查找实际是用的哈希算法。

set

set是一组key的集合,但是不存储value。由于key不能重复,所以,在set中,没有重复的key。

创建一个set

必须传入一个list作为输入集合

s = set([1,2,3]);
s//{1,2,3}

set接收一个参数,就是list或tuple或者其他可迭代对象

L = [x,y,z];
s = set(L);

但是L中的元素x,y,z有任何一个可变就会报错。

添加元素

可以重复添加,但是不会有效果

s.add(4);

删除元素

s.remove(4);

set可以看做是数学意义上的无序和无重复元素的集合,所以两个set可以做&(交集)和|(并集)运算。

set和dict唯一区别在于set没有存储对应的alue,set的原理和dict一样,同样不可以放入可变对象

python内部传值

先贴一段代码

# 对list进行测试
list0 = [1,2,"tt",["ryr","hr"]];
list1 = list0;
list1[0] = 11;
list1[1] = 22;
list1[3][0] = "aa";
list1[3][1] = "bb"; # //对数字和字符串还有tuple进行测试
a = "yrr";
b = a;
b = "rer";
c = ("gr",12,["grr",45]);
d = c;
d = ("grgr",22,["grr",455]);
# c[0] = "grggr";
# c[1] = 22;
c[2][0] = "ggrgr";
c[2][1] = "help";
print(c);
print(d);
print(a);
print(b);
print(list0);
print(list1);



在python中,string,tuples,numbers是不可更改的对象,而list,dict则是可以修改的对象,我理解的修改和不可修改,是指是否能在本身上进行修改。

nfoo = 1
nfoo = 2 lstFoo = [1]
lstFoo[0] = 2

修改:虽然string,tuples,numbers可以进行修改,但是修改之后,原来内存中的那个numbers就不存在了,就被"抛弃"了,内存中又重新创建一块区域来存储另一个值。

但是对于list和tuples而言,修改的仅仅是内容改变,原来的那块内存并没有被丢弃,也没有创建新的内存。

python的dict和set的更多相关文章

  1. Python中dict的特点、更新dict、遍历dict

    dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样.而list的查找速度随着元素增加而逐渐下降. 不过dict的查找速度快不是没有代价的,dict的缺点是占用内 ...

  2. Python中dict详解

    from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...

  3. python 字典 dict 该注意的一些操作

    在用python处理dict 的时候,有几个该注意的地方,这里跟大家提一下: 1)操作dict 时,尽量少产生新的列表对象.比如: 遍历dict的时候,如果用 dic = {"a" ...

  4. python字典dict的增、删、改、查操作

    ## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...

  5. Python 字典 dict() 函数

    描述 Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. 语法 dict() 函数函数语法: dict(key/value) 参数说明: ...

  6. Python 基础 Dict 和 Set 类型

    python 什么是dict 例如: d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } 我们把名称称为key,对应的成绩称为value,dic就是通过key 来查找 ...

  7. python实现dict版图遍历

    python实现dict版图遍历的示例. 代码: #_*_coding:utf_8_import sysimport osclass Graph(): def __init__(self, V, E) ...

  8. Python之Dict和Set类型(入门5)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407905.html 本文出自:[Edwin博客园] Python之Dict和Set类型 1. Python ...

  9. 'dict_values' object does not support indexing, Python字典dict中由value查key

    Python字典dict中由value查key 众所周知,字典dict最大的好处就是查找或插入的速度极快,并且不想列表list一样,随着key的增加越来越复杂.但是dict需要占用较大的内存空间,换句 ...

  10. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

随机推荐

  1. Ubuntu中启用关闭Network-manager网络设置问题! 【Server版本】

    在UbuntuServer版本中,因为只存有命令行模式,所以要想进行网络参数设置,只能通过修改/etc/network/interfaces.具体设置方法如下: (1) UbuntuServer 修改 ...

  2. LINUX中断学习笔记【转】

    转自:http://blog.chinaunix.net/uid-14825809-id-2381330.html 1.中断的注册与释放: 在 , 实现中断注册接口: int request_irq( ...

  3. monkey测试===关于monkey测试的介绍

    https://www.cnblogs.com/lauren1003/p/6193277.html

  4. 81.Search in Rotated Sorted Array II---二分变形

    题目链接 题目大意:与33题类似,只是这里数组中有重复数值. 法一:解法与33题类似,只是这里要处理1,3,1,1,1这种情况,即有重复值时,mid与left和right都相等时,可以采用right- ...

  5. 【hihocoder】sam-2

    原意是把sam那一堆做完…… 这题还是很sb的,$\sum{maxlen(s)-minlen(s)+1}$就是本质不同的子串数量 然后因为suffix link的性质,maxlen[fa[s]]=mi ...

  6. Linux 日志系统及分析

    简介 在Centos 7.x / RHEL 7.x 的版本,系统日志是由一个名为 rsyslog的服务管理的,默认的日志守护进程为 rsyslog , rsyslog 是 syslog 的升级版本,默 ...

  7. CentOS安装指定版本GCC

    系统是CentOS 7, 自带的gcc是4.8.4 准备工作: 下载GCC源码包 gcc-5.5.0.tar.gz,地址(清华大学开源软件镜像站ipv6)(备选地址->gnu->gcc) ...

  8. 【JBPM4】查询流程实例当前所在节点

    示例代码: ProcessEngine processEngine = Configuration.getProcessEngine(); ExecutionService executionServ ...

  9. 急!急!急!请问win32api参数乱码如何解决!

    我想做一个QQ自动登陆,使用的QQ是2009.现在先模拟打开QQ,然后通过api调用回调函数.回调函数为一个委托方法,但是在方法中整个参数乱码,请问如何解决? 具体流程为,启动QQ,获取当前启动QQ的 ...

  10. sublime text按esc经常进入command mode(不能输入任何东西)

    在使用sublime text进行 选中 操作中,如果使用了esc退出选中状态,会进入command mode,现象是不能输入任何东西,关闭当前编辑文件重新打开可以解决.但是很影响连贯性.可以通过一些 ...