一.字典的简单介绍

字典是(dict)是python中惟一的一个映射类型,他是以{}括起来的键值对组成,在字典中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存保存在这个地址中,这种算法被称为hash算法,所以在字典中存储的key-value必须是可合适 hash的,(可以改变的都是不可hash的,hash意味着不可变)这是为了能够准确的计算内存地址而规定的.

不可变的数据类型:int,str,tuple,bool

可变的数据类型:list,dict,set

value没有要求,可以保存任意类型的数据.

 dic={132:45,True:999,'ig':1,(1,2,3):'nje'}
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}

语法:{key1:value1,key2:value2......}  

 dic={132:45,True:999,'ig':1,(1,2,3):'nje'}
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}

二,字典的增删改查和其他操作

1.增加

1.1 dic['key']='value'  

 dic={132:45,True:999,'ig':1,(1,2,3):'nje'}
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
1.2
  ⑴dic.setdefault('key')           #往字典里添加一个key,value默认为None,如果key已经存在,不会起任何作用
⑵dic.setdefault('key','value') #往字典里添加一个key-value
  dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
  dic.setdefault('李嘉诚')
  print(dic)
  #{132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje', '李嘉诚': None} #(1)   dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
  dic.setdefault('李嘉诚','房地产')
  print(dic)
  # {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje', '李嘉诚': '房地产'} #(2)   dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
  dic.setdefault(132,'房地产')
  print(dic)
  # {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'} #如果key已经存在,不会起任何作用

2.删除

2.1 dic.pop('key')

dic.pop('key')
  dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
  ret=dic.pop(132) #通过key删除 返回被删除的value
  print(ret) #如果key不存在会报错
  print(dic)
  #
  # {True: 999, 'ig': 1, (1, 2, 3): 'nje'}
2.2 del dic['key']  
 dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
  del dic[132]
  print(dic)
  # {True: 999, 'ig': 1, (1, 2, 3): 'nje'}
2.3 dic.popitem()  
 dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
  del dic[132]
  print(dic)
  # {True: 999, 'ig': 1, (1, 2, 3): 'nje'}
2.4 dic.clear()  
 dic = {132: 45, True: 999, 'ig': 1,132:'gu',(1, 2, 3): 'nje'}
  dic.clear()
  print(dic)
  # {} #得到的是一个空的字典

3.修改

3.1
 dic[key]=value 强制修改
  dic = {132: 45, True: 999, 'ig': 1,132:'gu',(1, 2, 3): 'nje'}
  dic[132]=789
  print(dic)
  # {132: 789, True: 999, 'ig': 1, (1, 2, 3): 'nje'}

3.2 dic1.update(dic)
 dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
dic1={1:'a',2:'b',132:46}
dic.update(dic1) #把dic 1中的内容更新到dic中,如果key重复,则修改替换,如果key不存在,就新增.
print(dic)
# {132: 46, '地方规划局': 999, 'ig': 1, (1, 2, 3): 'nje', 1: 'a', 2: 'b'}

4.查

4.1 dic.get(key)


 dic.get(key)
  dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
  print(dic.get(13,'好像虎')) #找不到key返回None,或者指定返回内容
  #好像虎

4.2 dic[key]
 dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
  print(dic[132]) #
  print(dic[12]) #KeyError: 12 没有这个键的时候查询会报错
4.3 for循环
 dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
for i in dic: #循环默认是去字典中的键
print(i)
#
# 地方规划局
# ig
# (1, 2, 3)

5.字典的其他操作

5.1 keys();values();items()

 dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
  print(dic.keys()) # (高仿列表) 高仿列表暂时可以当做真的列表用,也可以迭代
  print(dic.values()) # (高仿列表)
  print(dic.items()) #也是高仿的列表,只不过里面装的是元组
  # dict_keys([132, '地方规划局', 'ig', (1, 2, 3)])
  # dict_values([45, 999, 1, 'nje'])
  # dict_items([(132, 45), ('地方规划局', 999), ('ig', 1), ((1, 2, 3), 'nje')])
5.2 解构(解包)
 a,b = ''  #将后边解构打开按位置赋值给变量 支持  字符串 列表 元组
  print(a)
  print(b)
  #
  #   dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
  for a,b in dic.items():
   print(a)
  print(b)
  # 易大师
  # 剑圣
  # 剑豪
  # 托儿所
  # 草丛伦
  # 大宝剑   dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
  for key,value in dic.items():
   print(key,value)
  # 易大师 剑圣
  # 剑豪 托儿所
  # 草丛伦 大宝剑

三,字典的嵌套

 dic = {'name':'汪峰','age':43,'wife':{'name':'国际章','age':39,'salary':100000},'baby':[{'name':'熊大','age':18},{'name':'熊二','age':15},]}

 dic['baby'][0]['age'] = 19
print(dic)

python中的基本数据类型之字典的更多相关文章

  1. python中不可变数据类型和可变数据类型

    在学习python过程中我们一定会遇到不可变数据类型和可变数据类型. 1.名词解释 以下所有的内容都是基于内存地址来说的. 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址 ...

  2. python中的特殊数据类型

    一.python中的特殊数据类型 对于python,一切事物都是对象,对象基于类创建.像是“wangming”,38,[11,12,22]均可以视为对象,并且是根据不同的类生成的对象. 参照:http ...

  3. 1. Python中的基本数据类型、运算、变量

    本文利用的是Python 3.x版本,建议学习3.x版本 Python中的基本数据类型.运算.变量 1. 基本数据类型 1.1 整数 py可以处理任意大小的整数,例如123,1234567891324 ...

  4. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  5. python中的常用数据类型

    python中的常用数据类型 以下是个人总结的python中常见的数据类型,话不多说,我们直接步入正题: 数字类型 整型类:int类可以表示任意大小的整数值,在python中没有像JAVA或者C那样的 ...

  6. Python中多个列表与字典的合并方法

    Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['] b = ['] a += b print(a) >>>['] 2) a.extend(b) a=[' ...

  7. Python中的基本数据类型之列表与元组初步了解

    一.什么是列表 1.列表是Python中的基本数据类型之一用[]来表示,每一项元素由逗号隔开,列表什么都能装,(能装对象的对象) 2.可以用来存放大量数据 3.是一个可以改变的数据类型 二.列表的索引 ...

  8. Python中使用item()方法遍历字典的例子

    Python中使用item()方法遍历字典的例子 这篇文章主要介绍了Python中使用item()方法遍历字典的例子,for...in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下 ...

  9. python中元组、列表、字典、集合知识

    像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...

随机推荐

  1. Java 开源博客——B3log Solo 0.6.5 正式版发布了!

    Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...

  2. FontAwesome 图标

    FontAwesome 图标 前言 FontAwesome 大家都不陌生,精美的图标,出现在各式各样的网页中.最近在做 Windows Forms 应用程序,要求美观,就想能不能把 FontAweso ...

  3. 写在使用 Linux 工作一年后

    start 去年公司空了几台台式机,当时看了下似乎配置比我用的乞丐版 air 略高一些,而且除了 ssd 以外还有一个 1T 的大硬盘,加上后面可能会有一段时间不做 iOS 了,那就不需要 macOS ...

  4. CentOS 由 JavaCPP 转让 FFMPEG

    1. Java 与 FFMPEG FFMPEG 它是一种广泛使用的媒体处理库,于Java天地,处理视频较弱的能力,因此,有非常大的需求需求Java 转让 FFMPEG. Java 转让C 的方式有非常 ...

  5. 取消Jquery mobile自动省略的文本

    在使用jquery moblie做移动客户端app时,listview控件下的列表文本不能完全显示,只能显示一行,超过字数jquery mobile会自动用省略号代替.很是纠结啊. 最后在一个岛国网站 ...

  6. Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)

    原文:Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定) ------------------------------ ...

  7. OpenCV实现朴素贝叶斯分类器诊断病情

    贝叶斯定理由英国数学家托马斯.贝叶斯(Thomas Baves)在1763提出,因此得名贝叶斯定理.贝叶斯定理也称贝叶斯推理,是关于随机事件的条件概率的一则定理. 对于两个事件A和B,事件A发生则B也 ...

  8. 使用devcpp在windowXP上qt4.4.3安装与使用入门

    1.安装前先安装devcpp,我下载的是devcpp-4.9.9.2_setup.exe2.安装qt4.4.3,下载的是qt-win-opensource-4.4.3-mingw.rar,解压后运行后 ...

  9. thinkphp3.2定义多模块并设置默认模块

    前台入口文件index.php <?php // +---------------------------------------------------------------------- ...

  10. 通通玩blend美工(6)上——仿iPhone滚动选择器的ListBox(UI设计)

    原文:通通玩blend美工(6)上--仿iPhone滚动选择器的ListBox(UI设计) 好久没更新博客了,由于项目比较紧,期间收到不少园友的短消息,感谢大家对我的支持~~. 相信各位都在自己的神机 ...