python 05 字典
[TOC]
字典——dict { }
字典是无序,可变的数据类型。
字典:用于存储数据,存储大量数据,字典要比列表快;将数据和数据之间进行关联。
1. 定义:
dic = {键:值,键:值} #每个 键值对 以逗号分隔成一个元素
字典的值: 可以是任意的数据类型。
字典的键:必须是可哈希的——不可改变的数据类型;要求键唯一,如果有重复的,则后面的值会把前面的值覆盖掉。
(注:可哈希的 -- 不可变的数据类型(数字、字符串、布尔值) -- 避免哈希冲突使用了 “开放寻址法” )
(不可哈希的 -- 可变的数据类型 (列表、字典) )
2. 增:
dic = {"a":10,"b":20,"c":30}
dic["键"] = 值 # 暴力添加
dic["d"] = 40
dic.setdefault(键,值) # 通过键去字典中查询,如果键不存在执行添加,如果键存在则不会添加
dic.setdefault("c",40) # "c" 存在,不添加
dic.setdefault("f",40) # "f"不存在,添加到字典
3. 删:
del dic["a"] # 通过字典的键,删除键值对
dic.pop("b") # 通过字典的键,删除键值对,有返回值,返回的是被删除的值
dic.clear() # 清空字典
4. 改:
dic["b"] = 200 #字典中没有此键值对的时候就是添加,当键在字典中存在的时候就是修改 # "有则改,无则加"
dic.update(dic1) # 更新,里面必须放字典。update括号中的字典(dic1)级别高于前面的字典(dic)
# 运行:先将具有相同键的内容覆盖,再在字典末尾添加dic没有的键值对
5. 查:
for i in dic:
print(i) # for 循环获取的是键值对的键
dic.get(键) # 通过键获取值,如果键不存在字典中会返回 None
dic[键] # 通过键获取值,如果键不存在字典中会报错!
6. 其他操作:
dic = {"a":1,"b":2,"c":3}
# 1.
for i in dic:
print(i,dic.get(i)) # 循环输出所有的键和值 a 1 b 2 c 3
# 2. keys() 所有的键
print(dic.keys()) # 高仿列表,获取的是字典中所有的键 -- dict_keys(['a', 'b', 'c']) 支持for循环 不支持索引
for i in dic.keys():
print(i) # 循环输出所有的键 a b c
print(dic.keys()[0]) # 报错 'dict_keys' object does not support indexing(不支持索引)
# 3. values() 所有的值
print(dic.values()) # 高仿列表,获取的是字典中所有的值 ——dict_values([1, 2, 3])
print(list(dic.values())) # 获取的是字典中所有的值,转换成 真的列表
# 4. items() 所有的键和值
print(dic.items()) # 高仿列表,获取的是字典中所有的键和值,存放在元组中 ——dict_items([('a', 1), ('b', 2), ('c', 3)])
for i in dic.items():
print(i[0],i[1]) #将键和值从元组中循环打印出 a 1 b 2 c 3
# 5. 将字典中的值放到列表中
lst = []
for i in dic:
lst.append(dic[i])
print(lst)
7. 解构:
a = 10
b = 20
a,b = b,a
print(a,b) # 实现a,b数字的交换,列表、元组都可以
a,_,b = (3,4,5)
print(a,b) # 3 5 等号后边的值和前面的变量名要一一对应(假如只要a,b)
a = 10,12 # 本质就是一个元组
print(a) # (10,12)
a,b = "23"
print(a,b) # 2 3
a,b = {"1":"a","2":"b"}
print(a,b) #输出 1 2(键)
for i in dic.items():
print(i) # 获取的是每个元素,结果:(键,值)
for k,v in dic.items():
print(k,v) # 获取每个元素的键和值
8. 字典的嵌套:
查找的时候一次一次的通过键查找。
dic[键]
dic = {1001:["周杰伦","林俊杰"],
1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}}
print(dic[1002]["汪峰"]["前妻2"][1]) # 熊二
python 05 字典的更多相关文章
- python 05—字典
一.字典的键是唯一的 键:简单对象,例[字符串.整数.浮点数.bool值] list不能作为键,但可以作为值. 例: score = { '萧峰' : 95, '段誉' : 97, '虚竹' : 89 ...
- python --- 05 字典 集合
一.字典 可变数据类型 {key:value}形式 查找效率高 key值必须是不可变的数据类型 1.增删改查 1).增 dic["新key"] = "新va ...
- Python中字典和集合
Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...
- Python的字典
1. Python的字典 1.1. 字典的定义 在Python中,字典是一种key-value的数据类型,也是唯一的映射类型:字典还是另一种可变容器类型,且可存储任意类型对象,其中也可包括其他容器 ...
- Python的字典和JSON
Python的字典和JSON在表现形式上非常相似 #这是Python中的一个字典 dic = { 'str': 'this is a string', 'list': [1, 2, 'a', 'b'] ...
- python基础--字典
Python基础--字典 字典的常用函数: dict.clear( )--->无任何返回值 说明: 清除字典内的所有的元素 语法: In [5]: dict.clear? Type: metho ...
- Python dictionary 字典 常用法
Python dictionary 字典 常用法 d = {} d.has_key(key_in) # if has the key of key_in d.keys() ...
- python有序字典OrderedDict()
转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...
- python:字典嵌套列表
Python的字典{ }以键值对的形式保存数据,可以以键来访问字典中保存的值而不能用下标访问.字典中几乎可以包含任意的变量,字典,数列,元组.数列也一样. python的列表[ ]与字典不同,列表通过 ...
随机推荐
- [PTA] 数据结构与算法题目集 6-3 求链式表的表长
Length( List L ){ int res=0; while(L!=NULL){ res++; L=L->Next; } return res; }
- [leetcode] 67. Add Binary (easy)
原题链接 思路: 用一个数保存进制,从后往前不断pop出两个数字和进制数相加,放入返回值中. var addBinary = function(a, b) { var arrA = a.split(' ...
- 用python输出菱形
num = eval(input('请输入最多*所在行数:')) a = num b = num #上三角 for i in range(1,num+1): print((a-1) *' ', (2* ...
- Html5web全栈前端开发_angular框架
昵称领取全套angular视频教程 一.Typescript typescript简称ts,是js语法的超集,很多js新的语法就借鉴了ts语法.ts是由微软团队维护的 1.1 TS简介 1.1.1 G ...
- 实现跳转的jsp小例子
<%@page import="java.io.UnsupportedEncodingException"%> <%@ page language="j ...
- vue中el-upload上传多图片且携带参数,批量而不是一张一张的解决方案
现在前端基本不是vue技术栈就是react技术栈. vue技术栈最常用的就是element-ui的ui框架了. 在项目中,我们经常会碰到这种需求:批量上传文件 element-ui 确实也为我们提供了 ...
- 使用钉钉对接禅道的bug系统,实现禅道提的bug实时在钉钉提醒并艾特对应的开发人员处理
现在公司测试中有一个痛点是每次测试人员提完bug后,需要定期去提醒开发人员查看禅道的bug记录及修复bug. 导致测试人员在项目测试中不仅要测试整个软件,还要负起实时监督提醒功能的“保姆角色”,身心疲 ...
- CentOS7使用yum安装ceph rpm包
1. 安装centos7对扩展repo的支持yum install yum-plugin-priorities保证下面的选项是开启的[main]enabled = 1 2. 安装 release.ke ...
- git基本命令学习(一)
1 git配置文件 1.1 git权限控制 git有三个不同的权限控制文件,高优先权的设置会覆盖低优先权的设置项,以下按照优先权从高到低介绍: 文件夹中".git" 子文件夹中的c ...
- 简洁实用Socket框架DotNettySocket
目录 简介 产生背景 使用方式 TcpSocket WebSocket UdpSocket 结尾 简介 DotNettySocket是一个.NET跨平台Socket框架(支持.NET4.5+及.NET ...