定义:

{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. Asp.Net Core中Session使用

    web程序中,Session是一个无法避开的点. 最近新开项目,打算从开始搭建一个基础的架子,后台用户登录成功后,需要保存session. 新建的asp.net core的模板已经包含了Session ...

  2. C# Foreach循环本质与枚举器

    对于C#里面的Foreach学过 语言的人都知道怎么用,但是其原理相信很多人和我一样都没有去深究.刚回顾泛型讲到枚举器让我联想到了Foreach的实现,所以进行一番探究,有什么不对或者错误的地方大家多 ...

  3. 程序员IT狗有什么副业可以做呢?

    1. 开篇 副业有很多,全网有做什么公众号.闲鱼.手机卡,各种各样的都有,大部分是骗子,小部分是通过自己的努力,获得了成功. 从年初就开始实践如何做一个自由职业者,近大半年有一些感受正好一起分享交流一 ...

  4. 微信小程序前端页面书写

    微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...

  5. Travis CI持续集成使用

    用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值.而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情. 一.什么是持续集成? Travis CI 提供的是持续 ...

  6. Ubuntu16.04 安装apache+mysql+php(LAMP)

    记录下ubuntu环境下安装apache+mysql+php(LAMP)环境. 0x01安装apache sudo apt-get update sudo apt-get install apache ...

  7. Spring Boot 入门(七):集成 swagger2

    本片文章是基于前一篇写的,<Spring Boot 入门(六):集成 treetable 和 zTree 实现树形图>,本篇主要介绍了spring boot集成swagger2.关于swa ...

  8. 《Java并发编程实战》读书笔记-第5章 基础构建模块

    同步容器类 同步容器类实现线程安全的方式:将所有状态封装起来,对每个公有方法使用同步,使得每一次只有一个线程可以访问.同步容器类包含:Vector.Hashtable.Collections.sync ...

  9. 使用js json/xml互相转换

    <html> <head> <title>json与xml互转</title> <script type="text/javascrip ...

  10. 11.Linux用户特殊权限

    1.特殊权限概述 前面我们已经学习过 r(读).w(写). x(执行)这三种普通权限,但是我们在査询系统文件权限时会发现出现了一些其他权限字母,比如: 2.特殊权限SUID set uid 简称sui ...