1. 什么是字典

    字典是python中唯一的映射类型, 由{ } 括起来的键值对组成,在dict中key是唯一的.字典是以key:value的形式来保存数据, 字典存储数据的时候是用的hash值来存储. 算法不能变(python的)

      数据必须是不可变的(可哈希). 字典的key必须是可哈希的(不可变).

   已知的可哈希的(不可变)的数据类型: int , str , tuple , bool

      不可哈希(可变)的数据类型: list , dict , set

   语法:     

      dict = {key: value, key: value ... }     

    注意:     

      key必须是不可变(可哈希)的, value没有要求,可以保存任意类型的数据

2. 字典的增删改查

    dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的. 而hash表不是连续的.

  所以不能进行切片工作,它只能通过key来获取dict中的数据

  1.增加

  dic[key] = 值
dic.setdefault(key) dic = {}
dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组
合进dict
dic['age'] = 18
print(dic)
# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
dic.setdefault('李嘉诚') # 也可以往⾯设置值.
dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会
起作⽤
print(dic) 

  2.删除(pop , popitem 随机删除, clear 清空)

ret = dic.pop("joy")
print(ret)
  
  del dic["jay"]
  print(dic)
  
  # 随机删除.
  ret = dic.popitem()   # 清空字典中的所有内容
  dic.clear()

  3. 改 ( update )

  .update()
  dic = {"id": 123, "name": 'sylar', "age": 18}
  dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
  dic.update(dic1)
  # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增.
  print(dic)
  print(dic1)

  4. 查询

  print(dic['name']) # print(dic['t'])
  # 报错 print(dic.get("ok")) print(dic.get("t"))
  # None print(dic.get("t", "⽜B"))
  # ⽜B

  5. 字典的其他相关操作

. keys() 获取到所有的键
. values() 获取到所有的值
. items() 拿到所有的键值对 #解构, 注意数量必须匹配
a , b = 1, 2
print(a , b) (c , d) = 3 , 4
print( c , d)

3. 字典的嵌套   

  字典的嵌套. 字典套字典

# 字典的嵌套  .get(key) 根据key取value
dic1 = {
"name": "汪峰",
"age": 18,
"wife": {
"name": '章子怡',
"age": 28
},
"children": ['第一个毛孩子', '第⼆个毛孩子'],
"desc": '峰哥不不会告我吧. 没关系. 我想上头条的'
}
print(dic1.get("wife").get("name"))
print(dic1.get("children"))
print(dic1.get("children")[1])

5. 集合(不重要). 去重复

  集合中的元素是不重复的. 必须是可哈希的(不可变), 字典中的key
  空集合:set()
  空元组:tuple()
  空列表:list()
  非空集合: {123}集合, 集合其实就是不存value的字典

# 遍历字典两套方案
dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
# 1. 使用for循环直接遍历字典的key
# for key in dic:
# print(key)
# print(dic[key]) # 2. 可以使用字典的items()+解构可以直接获取到key和value
# for k, v in dic.items():
# print(k)
# print(v)

python---基本数据类型 dict(字典)的更多相关文章

  1. Python - 基础数据类型 dict 字典

    字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...

  2. python基础数据类型--dict 字典

    字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...

  3. python基本数据类型之字典

    python基本数据类型之字典 python中的字典是以键(key)值(value)对的形式储存数据,基本形式如下: d = {'Bart': 95, 'Michael': 34, 'Lisa': 5 ...

  4. Python基础数据类型之字典

      基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...

  5. Python基本数据类型之字典dict

    字典dict 是一个键(key)值(value)对,结构为{},大括号 创建字典 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 info = { # k ...

  6. python基础(六)dict字典和文件操作open

    字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...

  7. Python开发——数据类型【字典】

    字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...

  8. python基础数据类型之字典的操作

    一. 字典的简单介绍字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key- ...

  9. python:数据类型dict

    一.字典 key -->value 储存大量数据,而且是关系型数据,查询速度非常快 数据类型分类: 可变数据类型:list , dict, set 不可变的数据类型:int , bool, st ...

随机推荐

  1. leetcode219

    public class Solution { Dictionary<int, List<int>> dic = new Dictionary<int, List< ...

  2. oracle创建新数据库

    oracle创建新数据库 look here http://www.cnblogs.com/phoenixzq/p/3510854.html windows start menu>Oracle& ...

  3. 【330】word - VBA 相关实现

    参考:Object model (Word VBA reference) 序号 类名称   功能说明   语法 & 举例 01 Selection   ====<<<< ...

  4. Thymeleaf 标准表达式语法

    变量表达式${ } 在控制器中往页面传递几个变量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Controller public class IndexController ...

  5. springboot+shiro+jwt

    1.添加依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-sp ...

  6. 模m的剩余类里的一切数与m的最大公约数相等

    [模m的剩余类里的一切数与m的最大公约数相等] 设剩余类里的任意两元素,a.b.则: a=mq1+r1, b= mq2+r1. 根据上式可得,(a,m)=(m,r1), (b,m)=(m,r2).可推 ...

  7. fork后父子进程文件描述问题

    [fork后父子进程文件描述问题] 一张图可以浅析的解释: 参考:http://wenku.baidu.com/view/dd51581bff00bed5b9f31d8e.html

  8. PL/SQL 程序

    set serveroutput on

  9. 9-eclispe中右键BuildPath没有了

    Eclipse 右上角的代码视图,选择Java就好了!

  10. select获取下拉框的值 下拉框默认选中

    本文主要介绍select下拉框的相关方法. 1.通过id获取下拉框的value和文本值 例如:  <select class="form-control" id=" ...