python基础之dict和set
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的更多相关文章
- python基础之dict、set及字符
python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...
- python基础——使用dict和set
python基础——使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其它语言中也称为map(映射),使用键-值(key-value)存储,具 ...
- 第四篇:python基础之dict、set及字符
python基础之dict.set及字符 python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射 ...
- Python基础之dict和set的使用
dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言种也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...
- Python基础:字典(dict)与集合(set)
查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- python基础教程——dict和set
dict python内置字典:dict,全称dictionary,在其他语言中称为map,使用键值对存储. ex: d = {'xiaoli' : 95 , 'xiaoming' : 98 , 'x ...
- python基础(六)dict字典和文件操作open
字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...
- python基础数据类型--dict 字典
字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...
随机推荐
- 【设计模式】原型模式(Prototype)
摘要: 1.本文将详细介绍原型模式的原理和实际代码中特别是Android系统代码中的应用. 纲要: 1. 引入原型模式 2. 原型模式的概念及优缺点介绍 3. 原型模式对拷贝的使用 4. 原型模式在A ...
- centos_7.1.1503_src_4
http://vault.centos.org/7.1.1503/os/Source/SPackages/ libkcompactdisc-4.10.5-3.el7.src.rpm 05-Jul-20 ...
- python 命名规范最近遇到的问题
1.remove redundant parentheses 出去多余的括号,写C#习惯了先加个括号,python的if不用加括号. 改为:if chrome_args().get("hea ...
- C 实现一个简易的Http服务器 (二)
正文 - 直接搞起 C 实现一个简易的Http服务器 很久以前写过一个简易的http服务器, 后面和一个朋友交流, 反思后发现问题不少.在这里简单搞一下. 让其更加简单去表现httpd本质, 弱化协议 ...
- The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collectio
The content of element type "resultMap" must match "(constructor?,id*,result*,associa ...
- java的装饰设计模式
类似python中的装饰器. 示例: public class Test5 { public static void main(String[] args) { Worker w = new Work ...
- Hive分组取第一条记录
需求 交易系统,财务要求维护每个用户首个交易完成的订单数据(首单表,可取每个用户交易完成时间最老的订单数据).举例: 简写版的表结构: 表数据: 则 财务希望汇总记录如下: uid order_id ...
- 深入理解python多进程编程
1.python多进程编程背景 python中的多进程最大的好处就是充分利用多核cpu的资源,不像python中的多线程,受制于GIL的限制,从而只能进行cpu分配,在python的多进程中,适合于所 ...
- AC日记——[POI2014]KUR-Couriers 洛谷 P3567
[POI2014]KUR-Couriers 思路: 卡空间,sb题: 代码: #include <bits/stdc++.h> using namespace std; #define m ...
- windows查看指定端口