定义:

{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. classpath:类路径

    classpath:可以用于web.xml中获取spring springmvc配置文件的位置 用于sprnig配置文件中获取mapper的位置 classpath:可以获取到java目录下的,res ...

  2. Web Storage和cookie的区别——每日一题20190629

    Web Storage? 使用HTML5可以在本地存储用户的浏览数据. 使用的主要目的是为了克服Cookie带来的一些限制,当数据需要被严格控制在客户端上时,无需持续的将数据发回服务器 主要目标: 1 ...

  3. 转:python2.x 和 python3.x的区别

    注:本文的原文地址为Key differences between Python 2.7.x and Python 3.x 许多 Python 初学者想知道他们应该从 Python 的哪个版本开始学习 ...

  4. JAVAWEB第一节课的课后思考

    第一开发一个网站需要的一些技术 至少熟悉一种建站程序.(html,javascript等等)对空间和域名的知识有一定的了解.有一些美工基础(例如ps设计等等).对编程有一些了解.HTML的代码知识基本 ...

  5. BZOJ 1965 [AHOI2005]洗牌

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...

  6. Bribe the Prisoners SPOJ - GCJ1C09C

    Problem In a kingdom there are prison cells (numbered 1 to P) built to form a straight line segment. ...

  7. 理解numpy.dot()

    import numpy.matlib import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[11,12],[13,14]]) p ...

  8. Python接口测试框架实战与自动化进阶☝☝☝

    Python接口测试框架实战与自动化进阶☝☝☝  一.fiddler在工作中的运用  1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...

  9. Halcon一日一练:获取孔位

    本例程是用于获取安装螺丝孔在图像中对应的坐标位置,并显示该坐标位,如上图所示. read_image(Image,'rim.png')//读取图像 dev_close_window()//关闭窗口 g ...

  10. Mysql分表的一个考虑

    今天看到一篇博客,讲述的是Mysql的分表方案,内容比较简单,不过有个思路倒是挺好的,记录下,后续分表可以参考 作者主要是说到两种分表,一个是取模,另一个是范围分表 取模:比如用户ID%10,分10张 ...