python 基础学习笔记(4)--字典 和 集合
**字典:**
- [ ] 列表可以存储大量的数据,但是如果数据量大的话,他的查询速度比较慢,因为列表只能顺序存储,数据与数据之间的关联性不强。所以便有了字典(dict)这种容器的数据类型,它是以{}括起来的。
> 语法:{‘key1’ :1,‘key2’:2}
其中 key :必须是可哈希的数据类型,例如:int,bool,str,tuple。不可哈希的有:list dict set(集合),而冒号后的value 没有要求
例如.
> 合法:
> dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}
> 非法:
> dic = { [1,2,3] : '555'} # list 是可变的,不能作为key
> dic = { {‘abc’ :123} :555} #dict是可变的,不能作为key
**- 字典的增删改查功能**
1. 增
> `dic = {}` #空字典
> `dic [ ‘name’ ] = ‘张三’`
> `dic [ 'age' ] = 23`
> `print (dic)`
> #结果 : {'name' : '张三', 'age' : 23}
> 如果dict 中没有出现这个key,就会将 key - value 组合添加到这个字典中。
2. 删
> `dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}`
> `s = dic.pop(123)` *# pop 删除有返回值,返回的是被删的值*。
> `print(s)` *## 输出为666*
> `print(dic)`
> *##输出为 dic = {123 :456,’name‘ :‘张三’,(1,2,3):555}*
>
>
> `dic.clear()` *# 清空*
3. 改
> `dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}`
> `dic[ 'name‘ ] = ’李四‘` *#当 字典中存在’name‘这个key那么就直接修改赋值,若不存在,则添加。*
>
> `print(dic)`
> *#dic = {123 :456,True : 666,’name‘ :‘李四’,(1,2,3):555}*
> `dic.updata({'key' : 'v', 'qwe' : 789 })`
> *#当updata中的字典里没有dic中键值对(key-value)就添加到dic中,如果有就修改,类型于 列表中的 list.expend()*
4. 查
> `dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}`
> `s = dic ['name']` #通过键(key)来查找,如果这个键不存在字典中,那么就报错
> `print(s)` # '张三'
> `q = dic.get(True)` #通过键来查看,如果键不在字典中,就输出none
**字典的其他操作**
1. 获取字典的键
> `dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}`
> `key_list = dic.keys()`
> `print(key_list)`
> **结果**
> dict_keys([123, True, 'name'],(1,2,3))
>
2. 获取字典的值
> `dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}`
> `value_list = dic.values()`
> `print(value_list)`
> **结果**
dict_value(456,666,'张三',555)
3. 获取键值对
> `dic = {123 :456,True : 666,’name‘ :‘张三’,(1,2,3):555}`
> key_value_list = dic.items()
> print(key_value_list)
> 结果
> dict_items([(123,456), (True,666), ('name','张三'), ((1,2,3), 555)])
>
**集合**
- [ ] 集合就像放弃了值(value),仅剩下键的字典一样。键于键之间不运行重复。(如果你仅仅想知道某一个元素是否存在而不关心其他的,使用集合是个非常好的选择。)
- [ ] 集合中的元素是必须和哈希的,但是集合本身是不可哈希的,是可以改变的
> set1 = {'1','name',2,True,[1,2,3]} # 报错
set2 = {'1','name',2,True,{1:2}} # 报错
set3 = {'1','name',2,True,(1,2,[2,3,4])} # 报错
set 集合的增删改查
1. 增加
> `s = {'abc', 'efg', 'hij','lmn' }`
> `s.add('123')`
> `print(s)` #{'abc', 'efg', 'hij','lmn' ,'123'}
> `s.add('abc')`
> `print(s)` #{'abc', 'efg', 'hij','lmn' ,'123'} 重复的内容不会被添加到set集合中
>s.updata(['111','222','333'])
>print(s)#{'abc', 'efg', 'hij','lmn' ,'123', '111', '222', '333'}# 迭代更新
>
2. 删除
> `s = {'abc', 'efg', 'hij','lmn' }`
> `item = s.pop()` #随机弹出一个
> `print(s)`
> `print(item)`
> 结果
> {'lmn', 'abc', 'efg'}
> hij
> `s.remove('abc')`#直接删除元素
> `print(s)`
> 结果
> {'lmn', 'efg',}
> `s.clear()` #清空set集合,
3. 修改
> set集合中的数据没有索引,也没有办法去定位一个元素,所以没有办法进行直接修改。
> 但是我们可以雷雨删除和添加来完成修改。
> 例如
> `s = {'abc', 'efg', 'hij','lmn' }`
> #将’abc‘ 改成’ 123‘
> `s.remove('abc')`
> `s.add('123')`
> `print(s)`
> #{ 'efg', 'hij','lmn', '123'}
4. 查询
> #set 集合是一个可迭代对象,所以可以进行for循环
> for item in s:
> print(item) #遍历
**这就是字典和集合的几大内容
到目前位置就是 python中的几大数据类型。感谢点击和观看,欢迎评论。**
python 基础学习笔记(4)--字典 和 集合的更多相关文章
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python基础学习笔记(八)常用字典内置函数和方法
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- Python基础学习笔记(九)常用数据类型转换函数
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...
- Python基础学习笔记(二)变量类型
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- python基础学习笔记(一)
最好有点c++基础来看,,每天都更新一篇吧 这一篇是一些基础东西 1.运算符2.变量3.基本输入输出4.字符串5.列表6.元组7.字典8.集合9.简单的说下循环啥的 1.运算符 特别的 a / b:为 ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- Python基础学习笔记(十三)异常
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...
随机推荐
- vuex简单使用。
项目结构: 1:首先在项目中新建store.js文件,.js文件内容如下: import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) ex ...
- numpy的基本API(一)——创建
numpy的基本创建API iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 1.np.empty([a, b]) empty方法可以在无需初始化的情况下创建认 ...
- 如何手动实现TryInsert和InsertOrUpdate
在日常开发中,我们有时会需要对数据的插入操作进行定制.比如,如果表里已有某某记录就不写入新纪录,或者表里没该记录就插入,否则就更新.前者我们称为TryInsert,后者为InsertOrUpdate( ...
- Python3 函数实践之简易购物系统
函数实践之简易购物系统 项目主要需求: 用户可以自行选择功能 该购物系统具有注册/登录/购物/购物车/退出登录功能 用户在登录后才能使用购物/购物车/退出登录功能 ''' 注册 登录 购物 购物车 退 ...
- 大数据学习笔记——Linux基本知识及指令(理论部分)
Linux学习笔记整理 上一篇博客中,我们详细地整理了如何从0部署一套Linux操作系统,那么这一篇就承接上篇文章,我们仔细地把Linux的一些基础知识以及常用指令(包括一小部分高级命令)做一个梳理, ...
- python之encode和decode编码
u = '中文' str3 = u.encode('utf-8') # 以utf-8编码对u进行编码,获得bytes类型对象 print(str3) u2 = str3.decode('utf-8') ...
- pip和conda添加国内清华镜像源(亲测有效)
文章目录 pip和conda 添加国内清华镜像 1. pip源更改: 2. conda源更改: pip和conda 添加国内清华镜像 python模块安装,使用国内源可以提高下载速度. 1. pip源 ...
- 《Dotnet9》系列-开源C# WPF控件库1《MaterialDesignInXAML》强力推荐
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- 分享一篇关于C#大文件上传的整个过程
简单写个小例子,记录一下此次大文件上传遇到的所有问题. 一.客户端(使用winform窗体实现) 具体功能: 点击“选择”按钮,选择要上传的文件 点击“上传文件”按钮,上传该文件调用UpLoad_Re ...
- c++-内联函数和函数重载和默认参数和函数指针
内联函数 C++ 内联函数是通常与类一起使用.如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方. 对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编 ...