Python3学习笔记-字典(dict)

 字典也是开发过程中最常用的一种数据类型。如果需要存储一个班学生的信息,每个学生有姓名、性别、年龄、住址等等的信息,如果用列表存储,需要很多列表。这时候就需要用字典来定义了。字典,dict,dictionary。

names = [‘Amy‘,‘Lily‘,‘Ben‘]
infos = [[18,‘female‘,‘北京‘],[17,‘female‘,‘天津‘],[21,‘male‘,‘上海‘]]

1、字典定义

字典是一种key-value的数据类型,使用{}定义,每个值用“,”分开,key和value用“:”分隔。

如上述举例将一个班学生的信息可以写入一个字典中,学生的编号为key,学生的信息为value。

1 infos = {
2     ‘Amy‘:[18,‘female‘,‘北京‘],
3     ‘Lily‘:[17,‘female‘,‘天津‘],
4     ‘Ben‘:[21,‘male‘,‘上海‘]
5 }
6 print(infos[‘Amy‘])

字典的特点:

(1) 取数据方便
   (2) 查找速度快

为什么字典查找的速度快呢?

如果用列表存储班级学生信息,那么需要查询一个学生信息时,需要先从names中找到他的位置,再从infos中找到他的信息,如果列表越长,查询速度会越慢。

  用字典实现的话,只需要一个名字和信息对应的一个表,这样很快能根据名字找到它对应的信息,无论表有多大,查找速度都不会慢。

  这和查字典是一样的。如果查一个字,是从第一页翻到最后一页,那么字典约大,查询速度越慢,这种方法就是在list中查找元素的方法。另一种方法是在字典的索引里找到字的对应页码,然后直接翻到那一页找到字,无论找哪个字都很快,不会随着字典变大而变慢,这就是字典的实现方式。

字典的特性:

(1) 字典是无续的,因为它没有下标,用key来当索引。

(2) 字典的key必须是唯一的,key不能重复,天生去重。

2、字典操作

(1) 增加:赋值,setdefault()

 1 infos = {
 2     ‘Amy‘:[18,‘female‘,‘北京‘],
 3     ‘Lily‘:[17,‘female‘,‘天津‘],
 4     ‘Ben‘:[21,‘male‘,‘上海‘]
 5 }
 6 infos[‘Kevin‘] = [19,‘male‘,‘北京‘] #通过赋值增加
 7 infos.setdefault(‘Heby‘,[18,‘female‘,‘上海‘]) #通过setdefault增加
 8 print(infos)
 9 infos[‘Kevin‘] = [19,‘male‘,‘西安‘] #如果key存在,会修改原来key对应的value
10 infos.setdefault(‘Amy‘,[18,‘female‘,‘西安‘]) #如果key存在,不会修改原来key对应的value
11 print(infos)

(2) 删除:pop(),popitem(),del, clear()

 1 infos = {
 2     ‘Amy‘:[18,‘female‘,‘北京‘],
 3     ‘Lily‘:[17,‘female‘,‘天津‘],
 4     ‘Ben‘:[21,‘male‘,‘上海‘]
 5 }
 6 infos.pop(‘Lily‘)  #指定key来删除
 7 infos.popitem()   #随机删除一个key,不常用
 8 del infos[‘Ben‘]  #指定key来删除
 9 infos.clear()  #清空字典
10 print(infos)

(3) 修改:赋值

1 infos = {
2     ‘Amy‘:[18,‘female‘,‘北京‘],
3     ‘Lily‘:[17,‘female‘,‘天津‘],
4     ‘Ben‘:[21,‘male‘,‘上海‘]
5 }
6 infos[‘Ben‘] = [19,‘male‘,‘西安‘]
7 print(infos)

(4) 查找:get(), 直接取值

 1 infos = {
 2     ‘Amy‘:[18,‘female‘,‘北京‘],
 3     ‘Lily‘:[17,‘female‘,‘天津‘],
 4     ‘Ben‘:[21,‘male‘,‘上海‘]
 5 }
 6 ‘Amy‘ in infos #判断Amy是否在字典中,返回True或False
 7 print(infos.get(‘Lily‘))
 8 print(infos.get(‘Lucy‘)) #如果取不到这个key,返回None
 9 print(infos.get(‘Lucy‘,110)) #如果取不到这个key,默认是110
10 print(infos[‘Ben‘])
11 print(infos[‘Kevin‘])  #如果key不存在会报错

3、字典内置方法

keys(), values(), items(), get(), setdefault(), update()

 1 infos = {
 2     ‘Amy‘:[18,‘female‘,‘北京‘],
 3     ‘Lily‘:[17,‘female‘,‘天津‘],
 4     ‘Ben‘:[21,‘male‘,‘上海‘]
 5 }
 6 infos2 = {‘Kevin‘:[19,‘male‘,‘上海‘]}
 7 print(infos.keys())   #获取到字典所有的keys
 8 print(infos.values()) #获取到字典所有的values
 9 print(infos.items())  # 获取字典所有的k-v
10 print(infos.get(‘Amy‘))
11 print(infos.setdefault(‘Ben‘,[21,‘male‘,‘上海‘]))
12 infos.update(infos2)  #更新字典值,如果key存在的话,就更新,不存在的话就添加
13 print(infos)

4、多重字典

 1 infos = {
 2     ‘Amy‘:{
 3         ‘age‘:18,
 4         ‘money‘:200000,
 5         ‘clothes‘:‘100套‘,
 6         ‘hzp‘:‘n多‘,
 7         ‘shoes‘:[‘nike‘,‘addis‘,‘lv‘,‘chanle‘]
 8     },
 9     ‘Lily‘:{
10         ‘金库‘:‘2000w‘,
11         ‘house‘:[‘三环一套‘,‘4环2套‘],
12         ‘cars‘:    {
13                 ‘japan‘:[‘普拉多‘,‘兰德酷路泽‘],
14                 ‘usa‘:[‘林肯‘,‘凯迪拉克‘,‘福特‘],
15                 ‘china‘:[‘五菱宏光‘,‘qq‘,‘红旗‘]
16             }
17     }
18 }
19 infos[‘Lily‘][‘cars‘][‘usa‘].append(‘牧马人‘)
20 infos[‘Amy‘][‘shoes‘].append(‘匡威‘)
21 infos[‘Amy‘][‘money‘] = infos[‘Amy‘][‘money‘] +200
22 print(infos)

5、字典的循环

直接循环一个字典的话,那么循环的是字典的key

 1 infos = {
 2     ‘Amy‘:[18,‘female‘,‘北京‘],
 3     ‘Lily‘:[17,‘female‘,‘天津‘],
 4     ‘Ben‘:[21,‘male‘,‘上海‘]
 5 }
 6 for key in infos:
 7     print(key,‘-->‘,infos[key])#打印key和value的值,推荐使用这种方式,速度快
 8
 9 for k,v in infos.items():
10     print(k,‘===>‘,v)#打印key和value的值,这种方式不推荐,因为会把字典转换成列表,效率不高

原文地址:https://www.cnblogs.com/fenggf/p/9023116.html

时间: 2024-11-12 09:44:16

Python3学习笔记-字典(dict)的相关文章

《python基础教程(第二版)》学习笔记 字典(第4章)

<python基础教程(第二版)>学习笔记 字典(第4章)创建字典:d={'key1':'value1','key2':'value2'}lst=[('key1','value1'),('key2','value2')]; d=dict(lst)d=dict(key1='value1', key2='value2')字典基本操作:d={'key1':'value1','key2':'value2'}; len(d) ==> 2 #字典中的键值对数量d={'key1':'value1','

Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) -         url:  需要打开的网址 -         data:Post提交的数据 -         timeout:设置网站的访问超时时间 直接用urllib.request模块的urlopen()

Python学习笔记:字典(dict)有关内容

字典是Python中唯一的映射类型.映射类型对象里哈希值(键:key),和指向的对象(值:value),是一对多的关系,也就是 字典的元素分为两个部分,分别是键和值,一个键对应一个值,键不能够重复,值可以重复. 1.创建字典. (1).字典是用大括号({})来包含元素的,基本创建就是直接赋值,键不能是元组或者列表,但是值可以是. >>> D = {'a':1,'b':2,'c':3}<span style="white-space:pre"> </s

Python3学习笔记(二)--数据类型:字符串、列表、元组、数字、字典、集合

变量赋值 Python 中的变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. Python中允许为多个变量同时赋值 a = b = c =1 a, b, c = 1, 'b', 1.1 # 将1, 'b'分别赋值给a.b,1.1赋值给c 标准数据类型 Python有五个标准的数据类型 String(字符串) List(列表) Numbers(数字) Tuple(元组) Dictionary(字典) Python字符串 String(字符串)是Python中最

python3学习笔记(1)

#python学习笔记 17/07/07# !/usr/bin/evn python3# -*- coding:utf-8 -*- #r"" 引号当中的字符串不转义 #练习#打印 '\\\t\n'print(r'\\\t\n') #打印 n = 123print('n = 123') # 打印 f = 456.789print("f = 456.789") #打印 s1 = 'Hello, world!'print("s1 = 'Hello, world!

Python学习笔记——字典

1.创建字典和给字典赋值,可以使用工厂方法dict()来创建字典,也可以使用fromkeys()来创建一个元素具有相同值的字典 >>> dict = {'name':'XiaoMing','age':20} >>> dict {'age': 20, 'name': 'XiaoMing'} >>> dict2 = dict((['x',1],['y',2])) >>> dict2 {'y': 2, 'x': 1} >>>

python3学习笔记(一)——数字、字符串、列表、字典、元组

什么是python解释器? python代码在解释器中运行.解释器是代码与计算机硬件之间的软件逻辑层. python的执行过程                                                                                                                                     源代码(.py文件) --> 编译 --> 字节码(.pyc文件) --> python虚拟机解释字

Python3学习笔记-字典及列表练习

一.字典练习_注册校验 需求点说明: 1.用字典存储已有用户名.密码 2.判断输入用户名.密码.确认密码不能为空:strip() 3.用户名不能重复:key in dirc 4.两次密码应输入一致 5.错误3次提示错误次数过多:for, else user = { 'fengfeng':'123456', 'fangfang':'456788' } for i in range(3): username = input('请输入用户名').strip() passwd = input('请输入密

python3学习笔记(3)

一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用 f2 = 123不可以被调用 2.chr()和ord()chr()将ascii码转换成字符,ord()将字符转换成acsii码在2.7中chr()和ord()用来翻译参数和ascii码的对应关系.例:r = chr(65)print(r)和r = ord("B")print(r) 实例:随机验证码import random #用来生成随机数的模块li = []for i in r