定义:

{key1:value1,key2:value2}

  1、键与值用冒号“:”分开;

  2、项与项用逗号“,”分开;

示例:

 dic4={
'name': 'xiaohu',
'age': 20,
'hobby': 'girl'
}

特性:

1、key-value结构

2、key必须为不可变数据类型、必须唯一

3、可存放任意多个value、可修改、可以不唯一

4、无序

查询速度快,且不受dict的大小影响,至于为何快?我们学完hash再解释。

字典两大特点: 无序,键唯一

dic = {1:'xiaohu','age':'20','hobby':{'name':'铁锤','age':45},'is_handsome':True}

print(dic)
print(dic['hobby']) # 字典和元祖都不可以做为键 因为他们都是可变的 字典可以作为后面的值
创建字典
 dic3 = dict((('','xiaohu'),)) #调用dict函数
print(dic3)

字典的操作

1、增

(1)直接新增键值对
 dic1={'name':'xiaohu'}
dic1['age']=20
print(dic1) #增加一个
(2)利用函数setdefault()进行添加

2、查

(1)dic[''] 直接利用key来查值
dic.keys()   dic.values()     dic.items()
 dic4={'name': 'xiaohu', 'age': 20, 'hobby': 'girl'}
print(dic4['name']) print(dic4.keys()) # 通过keys方法来查看字典里所有的键,但是注意的是拿出来的不是一个列表 dict_keys(['name', 'age', 'hobby'])
print(type(dic4.keys())) #<class 'dict_keys'>
print(list(dic4.keys())) # ['name', 'age', 'hobby'] 将它转换成列表
print(list(dic4.values())) #['xiaohu', 20, 'girl'] 将它的值拿出来并且转换成列表
print(list(dic4.items())) # [('name', 'xiaohu'), ('age', 20), ('hobby', 'girl')]

3、
改 update
 dic4={'name': 'xiaohu', 'age': 20, 'hobby': 'girl'}
dic4['age']=21
print(dic4) #{'name': 'xiaohu', 'age': 21, 'hobby': 'girl'}
dic5={'':111,'age':''}
dic4.update(dic5) # 将dic5加入到idc4中去,dic4发生改变,dic5不发生改变, 若有重复的键,将覆盖其值
print(dic4) # {'name': 'xiaohu', 'age': '2222', 'hobby': 'girl', '1': 111}
print(dic5) # {'1': 111, 'age': '2222'}

4、删 del clear pop popitem

 dic6={'name': 'xiaohu', 'age': 20, 'hobby': 'girl','height':''}
# del dic6['name'] # 删除的是一个键值对
# print(dic6) # dic6.clear() #删除一整个字典 字典删除后为空 # print(dic6.pop('age')) # 删除某一个索引,返回删除的值
# print(dic6) a=dic6.popitem() # 删除的是随机的
print(a,dic6)

5、涉及到的其他操作及方法

 dic7=dict.fromkeys(['host1','host2','host3'],'test')
print(dic7) # {'host1': 'test', 'host2': 'test', 'host3': 'test'}
dic8=dict.fromkeys(['host1','host2','host3'],['test','test2'])
print(dic8) # {'host1': ['test', 'test2'], 'host2': ['test', 'test2'], 'host3': ['test', 'test2']}

6、后话  字符串拼接 join方法

 a=''
b='abc'
e=''
c=a+b
print(c) # 123abc
d='---'.join([a,b,e]) # 通过‘---’将字符串拼接
print(d) # 123---abc---444

 7、字典与字符串的转换 利用eval()函数转换成字典

 a=str({'beijing':{'':1111}}) # 将字典类型转换成字符串类型,使之可以存到文件里
print(type(a))
print(a)
a=eval(a) # 使用eval()函数将字符串转换成字典类型,为了操作从文件取出来的字符串类型的字典进行操作,否则操作报错
print(type(a))
print(a['beijing'])

Python基本数据结构之字典的更多相关文章

  1. 学Python常用数据结构之字典

    迄今为止,我们已经为大家介绍了Python中的三种容器型数据类型,但是这些数据类型还不足以帮助我们解决所有的问题.例如,我们要保存一个人的信息,包括姓名.年龄.体重.单位地址.家庭住址.本人手机号.紧 ...

  2. python核心数据结构之字典

    ![](http://images2015.cnblogs.com/blog/1182370/201706/1182370-20170628210759774-266944364.jpg) [TOC ...

  3. Python之数据结构:字典

    key值需要是不可变对象,字典没有顺序 1.声明一个字典 dictA={ } 2.字典添加元素 dictA['name']='jack' dictA['age']=19 dictA['sex']='m ...

  4. python基础--数据结构之字典

    字典 特点:无序,键唯一 目录 1.字典的创建 2. .setdefault 的使用 3.  字典中的查找 4.字典中的改 5. 字典中的删除 6. 打印字典的方法 7. 格式化字符串 8. 合并字符 ...

  5. Python常见数据结构-Dictionary字典

    字典基本特点 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中. 键是唯一的,如果重复最后的一个键值对会替换前面的,值不需 ...

  6. Python基本数据结构之字典嵌套(例子)

    北京城市地区之间的嵌套 # coding=gbk #Created on 2019/5/20 #@author: XiaoHu menu = { '北京': { '朝阳': { '国贸': { 'CI ...

  7. 小白学 Python(13):基础数据结构(字典)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 小白学 Python(12):基础数据结构(字典)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  9. 【循序渐进学Python】4. Python中的序列——字典

    字典是Python内建的六种序列之一.字典作为一种常用的数据结构,字典中的值没有特定顺序,每个值都对应于一个唯一的键.键可以是数字.字符串甚至是元组. 1. 创建和使用字典 Python中字典可以使用 ...

随机推荐

  1. 教你如何判断URL的好坏

    1.最核心-网站整体内容质量2.关键词整理拓展及关键词布局3.网站外部链接建设4.网站内链建设合理5.面包屑导航6.友情链接7.404页面网站的SEO站外优化+SEO外链建设 层级:三层为好,301重 ...

  2. Redis之数据类型及命令

    Redis(REmote DIctionary Server) 是一个遵守BSD协议.支持网络.可基于内存亦可持久化的日志型key-value存储系统. KEY 常用指令: 指令 注释 备注 exit ...

  3. maven解决无法从远程仓库获取ojdbc问题

    原因 Oracle 的 ojdbc.jar 是收费的,Maven 中央库中实际上没有此资源 解决方法 手动下载相应的jar,然后将其安装到本地仓库.具体操作如下: 1\先去下载相关的jar包或者驱动 ...

  4. Win10安装gcc、g++、make

    下载安装包:    1. MinGW官网下载:http://www.mingw.org        点击右上角Downloads 点击下载 mingw-get-setup.exe 2. 百度网盘(2 ...

  5. Linux低权限用户记录ssh密码

    0x01 场景 现在有个攻击场景,就是你拿到了linux外网服务器的webshell,要做内网渗透前肯定要收集信息.其中可以做的一个工作是重新编译ssh来记录管理员的密码信息,信息可以用来撞其他机器的 ...

  6. [Luogu2879][USACO07JAN]区间统计Tallest Cow

    题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a p ...

  7. webpack4.0入门总结

    1. 安装webpack: // 初始化.安装webpack以及webpack-clinpm init npm install --save-dev webpack webpack-cli 2.创建配 ...

  8. VoodooPad Mac笔记本

    VoodooPad Mac笔记本 VoodooPad是记录您的笔记和想法的地方.想法,图片,列表,密码和妈妈的苹果派食谱.包括您需要跟踪和组织的所有内容,VoodooPad会与您一起成长而不会妨碍您. ...

  9. Uipath 浏览器页面最大化和最小化

    文章来源东京IT青年前线http://www.rpatokyo.com/ Uipath 浏览器页面最大化和最小化   浏览器在关闭时会自动记忆上次浏览器关闭时窗口的小,下次再次会以同样的大小打开.机器 ...

  10. SpringBoot生命周期管理之停掉应用服务几种方法

    前言 在生产环境下管理Spring Boot应用的生命周期非常重要.Spring容器通过ApplicationContext处理应用服务的所有的beans的创建.初始化.销毁. 本文着重于生命周期中的 ...