''''''
'''
字典(Dict)是python语言的一个最大的特征
1.定义:是可变的无序集合,以键值对为基本元素,可以存储各种数据类型
2.表示:{} 列表:[] 元组 () 字符串 ‘’ “” ‘‘‘ ’’’
3.元素之间用逗号(,)分割
4.键值对:{键:对} 键:Key 对:Value -----》 字典属于一对一映射关系的数据类型
'''
d1={}
print(len(d1)) #空字典 len()获取字典元素个数 '''
6.字典的键值设置要求
(1)一个字典对象里面所有的键必须唯一
'''
d2={1:'car',2:'bus',2:'train'}
print(d2)
'''
{1: 'car', 2: 'train'}
说明:当键重复时,只会输出一个,也就是最后的那个
''' ############################################################
'''
(2)不能对元素的键进行直接修改
'''
d3={'Alan':22,'Tom':23,'Mike':35}
print(d3)
d3['Alan']=21
print(d3)
'''
{'Alan': 22, 'Tom': 23, 'Mike': 35}
{'Alan': 21, 'Tom': 23, 'Mike': 35}
不能对元素的键进行直接修改,但是我们可以通过下标这种方式修改:字典名[键]=值,如果字典中没有通过这个下标法设置的键,那么就会在这个字典中新增一个键值对,如果有,就修改对应键的值
'''
'''
(3)值可以是Python支持的任何对象
'''
'''
7.字典的基本方法
(1)字典元素的增加
1.下标法赋值:上述已经说过了,这里不再赘述
2.setdefault()方法:使用格式是D.setdefault(k[,d]) 若指定键已经存在,则不会修改键对应的值,而是直接显示已经存在键的值。
'''
d4={'Alan':22,'Tom':23,'Mike':35}
d4.setdefault('Alice',10)
print(d4)
d4.setdefault('Alan',24)
print(d4)
'''
(2)字典值查找
1.通过指定键来查找
2.get()方法:使用格式是D.get(k[,d])
'''
print(d4['Alan']) #查找出对应键的值
print(d4.get('Alice'))
'''
(3)字典值修改
1.下标法赋值:上述也已经说过了,这里不再赘述
2.update()方法:使用格式是D.update(D')
'''
d5={'Alan':22,'Tom':23,'Mike':24}
d6={'Alan':32,'Mike':34}
d5.update(d6) #调用update()方法用d6更新d5
print(d5) #{'Alan': 32, 'Tom': 23, 'Mike': 34} d5.update({'Alice':20}) #也可以通过这种方法增加一个键值对
print(d5) '''
(4)元素删除
1.del
2.pop():使用格式是D.pop(k[,d])
3.popitem():使用格式是D.popitem()
Notes:popitem()不能加参数;这个方法是随机删除;会返回一个键值对元组;并在字典里删除对应的元素
'''
del(d5['Alice'])
print(d5)
d5.pop('Alan')
print(d5)
(k1,v1)=d5.popitem()
print((k1,v1))
print(d5)
'''
(5)字典遍历
1.items()方法遍历所有键值对:使用格式是D.items()
2.keys()方法获取键:使用格式是D.keys()
'''
for get_L in d4.items():
print(get_L)
'''
结果为:
('Alan', 22)
('Tom', 23)
('Mike', 35)
('Alice', 10)
'''
for gets in d4:
print(gets) #遍历所有键
'''
结果为:
Alan
Tom
Mike
Alice
'''
for gets1 in d4.keys():
print(gets1)
'''
结果为:
Alan
Tom
Mike
Alice
'''
'''
3.通过键遍历值
'''
for get_key in d4:
print(d4[get_key])
'''
22
23
35
10
思想为遍历出键,用下标法根据键遍历出值
'''
'''
4.values()方法:获取字典值:使用格式是D.values()
'''
for get_value in d4.values():
print(get_value)
'''
22
23
35
10
'''
'''
(6)其他操作方法
1.in成员操作
2.clear():D.clear():删除字典变量D中的所有元素
3.copy()方法:D.copy():深度复制,复制后产生的两个字典变量完全没有关系,互不影响。
4.fromkeys():D.fromkeys(列表):指定相应键生成空值字典
'''
d6={1:'a',2:'b',3:'c',4:'d'}
if 1 in d6.keys():
print('yes')
else:
print('no') d7=d6.copy()
print(d7)
print(id(d6))
print(id(d7))
'''
把d6的内容赋值给d7;id()方法是获取字典在内存中的地址;
结果为
2660611726144
2660611727080
发现地址不一样,则说明通过copy()方法复制的两个字典变量,二者虽然内容相同,但指向不同的地址
'''
d8=d7
print(id(d7))
print(id(d8))
'''
通过上述方法赋值,结果为
1379303300912
1379303300912
说明这种赋值方法,二者将指向同一地址
''' d9={}.fromkeys(['paper','pen','pencil'])
print(d9)
'''
{'paper': None, 'pen': None, 'pencil': None}
'''
####################################################
'''
8.字典嵌套
(1)字典嵌入字典
(2)列表嵌入字典
(3)字典嵌入列表
'''

python学习10字典的更多相关文章

  1. python学习10—迭代器、三元表达式与生成器

    python学习10—迭代器.三元表达式与生成器 1. 迭代器协议 定义:对象必须提供一个next方法,执行该方法或者返回迭代中的下一项,或者返回一个StopIteration异常,以终止迭代(只能往 ...

  2. python学习09——字典(3)

    今天写了一道python字典题目,用了上次字典(2)中的方法,代码如下: json = {', 'IP':'10.0.0.1'} def find_value(themap, word): if wo ...

  3. Python学习笔记-字典

    字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数 ...

  4. python学习:字典排序

    按字典值排序   按照字典value排序,类似sort -k 命令   import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = sorted(x.ite ...

  5. python学习之字典(Dictionary)练习

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型 字典中分为键值对 , key 类型需要时被哈希. value 类型可以是 字符串.数字.元组等其他容器模 ...

  6. Python学习笔记(字典)

    今天学习一个python中的基本类型--字典(dictionary) 字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息.在字典中,名字叫做“键”,对应的内容信息叫做“值”.字典 ...

  7. Python学习07——字典(2)

    笨办法学Python第40节,上次用的第三版的书,这次是第四版的书. 这一节的代码如下: cities = {'CA':'San Francisco', 'MI':'Detroit', 'FL':'J ...

  8. python学习05——字典

    笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件 ...

  9. Python学习之字典详解

    在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,在c++中有map的概念,也就是映射,在python中也提供了内置的映射类型--字典.映射其实就是一组key ...

随机推荐

  1. Js闭包练习2020031801

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. FCOS : 找到诀窍了,anchor-free的one-stage目标检测算法也可以很准 | ICCV 2019

    论文提出anchor-free和proposal-free的one-stage的目标检测算法FCOS,不再需要anchor相关的的超参数,在目前流行的逐像素(per-pixel)预测方法上进行目标检测 ...

  3. linux 之虚拟机的安装与介绍

    linux 零基础入门1.1linux介绍 操作系统用途: 管理硬件 驱动硬件 管理软件 分配资源1.2 linux的发展unix -> windows ->linuxlinux 免费 开 ...

  4. Java技巧之——判断相等

    变量值的判断是java中重要的一部分 通常我们判断两个值是否相等,使用的是两个等号 == 为了防止少写一个等号,造成无法挽回的失误,判断写为下面的格式 int a; 12==a; 原理是不能将任何东西 ...

  5. 在vue项目中使用md5加密 sirai

    1.安装模块 npm install js-md5 -D 2.在项目中引入模块 import md5 from 'js-md5' 3.把你需要加密的信息进行前期处理 CalcuMD5 = functi ...

  6. fiddler设置重定向

    fiddler支持将指定模式的url映射到另一个指定的url,即可用于拦截某一请求,并重定向到本地的资源或其他服务器地址 fiddler常用于: 解析请求:如:解析http请求状态,请求头,请求正文, ...

  7. 使用Putty登录亚马逊云主机

    亚马逊云主机配置之后会提示 提供一个 pem证书, 打开 SSH 客户端.(了解操作方法 使用 PuTTY 连接) 找到您的私有密钥文件(test001.pem).向导会自动检测您用于启动实例的密钥. ...

  8. 程序员的娱乐项目:Arduino 之 HelloWorld

    文章更新于:2020-03-14 文章目录 一.什么是Arduino 二.怎么购买Arduino 三.Arduino都是有那些版本 四.哪里可以找到Arduino的资料 五.Arduino 的供电电源 ...

  9. TCP协议的安全性分析

    有算法就有破解法,因为它们都遵循了一定的数据结构和数学知识.所以网络安全是一个相对的概念,不可能出现绝对的安全!作为当今最流行的网络协议--TCP也是如此.那么TCP的安全问题究竟是哪些因素引起的呢? ...

  10. hadoop(三)伪分布模式hdfs文件处理|5

    伪分布模式hdfs 1.启动hsfs 2. 编辑vi hadoop-env.sh image.png image.png 3.配置nameNode和生产文件第地址 [shaozhiqi@hadoop1 ...