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、set及字符

    python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...

  2. python基础——使用dict和set

    python基础——使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其它语言中也称为map(映射),使用键-值(key-value)存储,具 ...

  3. 第四篇:python基础之dict、set及字符

    python基础之dict.set及字符   python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射 ...

  4. Python基础之dict和set的使用

    dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言种也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...

  5. Python基础:字典(dict)与集合(set)

    查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...

  6. Python - 基础数据类型 dict 字典

    字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...

  7. python基础教程——dict和set

    dict python内置字典:dict,全称dictionary,在其他语言中称为map,使用键值对存储. ex: d = {'xiaoli' : 95 , 'xiaoming' : 98 , 'x ...

  8. python基础(六)dict字典和文件操作open

    字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...

  9. python基础数据类型--dict 字典

    字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...

随机推荐

  1. 天气api接口

    python调用天气api接口: http://www.sojson.com/open/api/weather/json.shtml?city=北京 http://www.sojson.com/blo ...

  2. 蓝屏代码0X0000007B可能是SATA mode问题

    Win7蓝屏代码0X0000007B可能是硬盘模式的问题,我进入BIOS把SATA的mode从Enhanced改为Compatible(及IDE兼容模式)结果系统可以顺利启动没有问题.       从 ...

  3. 【bzoj1798】【AHOI2009】维护序列

    练一下线段树模板,区间乘法. #include<bits/stdc++.h> #define lson (o<<1) #define rson (o<<1|1) ; ...

  4. 获取windows 网卡GUID和ip信息

    # coding: UTF-8 import _winreg GUID=dict() num = 0 netCfgInstanceID = None hkey = _winreg.OpenKey(_w ...

  5. Jquery和JS实现浏览器全屏

    var fullscreen=function(){ elem=document.body; if(elem.webkitRequestFullScreen){ elem.webkitRequestF ...

  6. java 多线程剖析

    问题的缘由源自于一道简单的面试题:题目要求如下: 建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC. 解决问题前我们前补充一些基本知识: ...

  7. HDU-2487

    Ugly Windows Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  8. go run/ go install/ go build / go get的区别

    go run 运行当个.go文件 go install 在编译源代码之后还安装到指定的目录 go build 加上可编译的go源文件可以得到一个可执行文件 go get = git clone + g ...

  9. 176. Second Highest Salary

    Write a SQL query to get the second highest salary from the Employee table. +----+--------+ | Id | S ...

  10. 使用css中的flex布局弹性手风琴效果

    不多说,直接上代码. <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...