Python——数据类型之dict
字典,相当于一个列表,不过列表的索引是数字,字典的索引是数字或者字符串。
1、字典的访问
字典是典型的key-value结构,一个key对应着一个value,key就是索引,value就是要保存的值
score={'Albert':99, 'QQ':88}
print(score['Albert'])#根据key访问value
score['XP']=77#新建一个key-value对
print(score)
print('#遍历value')
for i in score:#遍历value
print(i)
print('#遍历key和value')
for key,value in score.items():
print(key,value)
输出
99
{'Albert': 99, 'QQ': 88, 'XP': 77}
#遍历value
Albert
XP
#遍历key和value
Albert 99
QQ 88
XP 77
这样就很方便的解决了索引不是数字的情况了。
字典的底层其实是散列表,或者叫hash表。
2、字典的方法
(1)clear(self):清除所有内容,将字典变为None。
(2)copy(self):复制一个字典。(这里注意,不要直接a=b,就像C里面数组的复制那样,a=b只是把b的地址赋给a了,修改a的时候就是修改b。用copy函数就可以把a和b分开。)
b={'Albert':99, 'QQ':88}
a=b.copy()
a['Albert']=0
print(b)
b={'Albert':99, 'QQ':88}
a=b
a['Albert']=0
print(b)
输出
{'Albert': 99, 'QQ': 88}
{'Albert': 0, 'QQ': 88}
这就可以看出来copy与直接赋值的区别了。
(3)fromkeys(*args, **kwargs):根据key创造一个字典
name=['Albert', 'QQ']
score=10 a=dict.fromkeys(name,score)
print(a) b=dict.fromkeys(name)
print(b)
输出
{'Albert': 10, 'QQ': 10}
{'Albert': None, 'QQ': None}
(4)get(self, k, d=None):如果k(key)在字典中,则返回value。如果不在字典中,就返回d(default)默认返回None
a={'Albert':99, 'QQ':88}
print(a.get('QQ'))
print(a.get('XP'))
print(a.get('XP',100))
输出
88
None
100
(5)items(self):返回一个包含key和value的集合,通常用来字典里的key和value
a={'Albert':99, 'QQ':88}
for key,value in a.items():
print(key,value)
输出
Albert 99
QQ 88
(6)keys(self)返回一个只包含key的集合,通常用来字典里的key
a={'Albert':99, 'QQ':88}
for key in a.keys():
print(key)
输出
Albert
(7)pop(self, k, d=None):删除某个k(key),返回相应的value,如果k找不到,就返回d,d默认为None,会抛出KeyError
a={'Albert':99, 'QQ':88}
print(a.pop('QQ'))
print(a)
print(a.pop('XP','No'))
a.pop('XP')#没有指定d
输出
88
{'Albert': 99}
No
Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/temp.py", line 15, in <module>
a.pop('XP')
KeyError: 'XP'
(8)popitem(self):也是删除一对Key-Value。但是他会把这一对Key-value当做元组返回。(字典为空也会报错)
(9)setdefault(self, k, d=None):相当于get()方法获取key的value。但是如果key不存在,他会新建一个,并设value为d,并返回d
a={'Albert':99, 'QQ':88}
print(a.setdefault('QQ'))
print(a)
print(a.setdefault('XP',77))
print(a)
输出
88
{'Albert': 99, 'QQ': 88}
77
{'Albert': 99, 'QQ': 88, 'XP': 77}
(10)update(self, E=None, **F)用字典EF更新字典
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]
a={'Albert':99, 'QQ':88}
E={'Albert':11, 'QQ':22}
F=[33,44]
print(a)
a.update(E)
print(a)
输出
{'Albert': 99, 'QQ': 88}
{'Albert': 11, 'QQ': 22}
(11)values(self):主要用来遍历values
a={'Albert':99, 'QQ':88}
print(a.values())
for v in a.values():
print(v)
输出
dict_values([99, 88])
99
88
常用的这几个对象的所有方法的用法算是看完了,但是我不能保证我都记住了,有个印象就好。用的时候想到有这个方法,再过来查看一下就行,用多了就记住了。
Python——数据类型之dict的更多相关文章
- python数据类型:字典dict常用操作
字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...
- python数据类型:dict(字典)
一.字典的简单介绍 字典(dict)是python中唯一的一个映射类型.他是以{}括起来的键值对组成. 语法: {key1:value1,key2:value2......} 注意:key必须是不可变 ...
- python数据类型之dict
1.clear:删除所有元素 #D.clear() -> None. Remove all items from D dic_a ={:::'gen'} dic_a.clear() print( ...
- python数据类型之 dict(map)
字典 一.创建字典 方法①: >>> dict1 = {} >>> dict2 = {'name': 'earth', 'port': 80} >& ...
- Python数据类型之dict和set
Python内置了字典:dict的支持.在其他语言中也成为map,使用键-值(key-value)存储,具有极快的查找速度. 把数据放入dict的方法,除了初始化时指定外,还可以通过key放入. 由于 ...
- 分分钟钟学会Python - 数据类型(dict)
今日内容 字典(dict) 具体内容 1.字典含义 帮助用户去表示一个事物的信息(事物是有多个属性). 基本格式 data = {键:值,键:值,键:值,键:值,键:值,键:值,} # 练习题 use ...
- python数据类型之dict(字典)
dict字典 关注公众号"轻松学编程"了解更多. 1.概述 dict也是一种存储方式,类似于list和tuple,但是,字典采用键-值(key-value)的形式存储. 优点:具有 ...
- Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...
- Python 基础数据类型之dict
字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d = {k ...
随机推荐
- 菜鸟笔记 -- Chapter 6.2.3 成员变量
6.2.3 成员变量 在Java中对象的属性也称为成员变量[也叫字段].成员变量的类型可以设置为Java中合法的数据类型,其实成员变量就是普通的变量,可以为它设置初始值,也可以不设置初始值,如果不设 ...
- ABAP术语-Lock Object
Lock Object 原文:http://www.cnblogs.com/qiangsheng/archive/2008/02/29/1085742.html Object type in the ...
- 免安装版Tomcat9中间件的安装
[环境准备] OS版本:Windows10.64位 Tomcat版本:apache_tomcat9.0.7.zip免安装版 [彻底卸载已安装的Tomcat中间件] 01:由于是免安装版本,因此直接删除 ...
- 关于SSM项目注解事务不回滚的问题
<!--扫描service包(包含子包)下所有使用注解的类型--> <context:component-scan base-package="com.song.ssm.s ...
- JSP/Servlet开发——第一章 动态网页基础
1.动态网页:在服务端运行的使用程序语言设计的交互网页 : ●动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站(股票网站),一般情况下动态网站通过数据库进行架构. ●动态 ...
- Nodejs 使用 addons 调用c++ 初体验(一)
纠结很久,决定写一点遇到的“坑”. 基础环境:win7-64bit node(v7.5.0) 这些安装实在是太方便了,自行准备吧. 1. 安装 python(2.7.x ),用npm安装 nod ...
- python面向对象-cs游戏示例
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- class Role(object): n = 123 # 类变量 name = "我是类na ...
- pygame小游戏之坦克大战
以前在学校的时候无聊的学了会pygame.看了大概一周的教学视频,做出来个坦克大战的小游戏 Python3.5 pycharm import pygame,sys,time from random ...
- Leecode刷题之旅-C语言/python-101对称二叉树
/* * @lc app=leetcode.cn id=101 lang=c * * [101] 对称二叉树 * * https://leetcode-cn.com/problems/symmetri ...
- 【动态规划】[UVA1025]A Spy in the Metro 城市里的间谍
参考:https://blog.csdn.net/NOIAu/article/details/71517440 https://blog.csdn.net/c20180630/article/deta ...