博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字典及相关操作
阅读量:5251 次
发布时间:2019-06-14

本文共 2732 字,大约阅读时间需要 9 分钟。

字典

字典的意义:

列表的缺点

列表如果存储的数据较多,那么它的查询速度会相对变慢

列表储存的数据关联性不强

什么是字典:

python的基本数据类型之一:字典

python中唯一的映射类的数据,格式为用花括号 { } 括起来

字典是以键值对形式储存,每一对键值对以逗号隔开

{'name':'太白金星','age':'18','sex':'man'}

字典是以键值对形式储存的

键:不重复的,唯一的。键的数据类型必须是不可变的数据类型

值:任意储存类型,对象

字典可以储存大量键值对数据

python3.6之前,包括3.5,字典的排序都是无序的

python3.6之后,字典强行变成有序的

字典的优点

字典可以储存大量的关系型数据

字典的查询速度非常快

字典的增删改查

dic = {'name','太白金星','age','18','hobby','wife'}

增:

1.有则修改,无则添加

dic['hight'] = 176       添加一个键值对

dic['age'] = 23           把字典中的age对应的值修改为23

2.有则不变,无则添加

dic.setdefault('weight')                dic = {'name','太白金星','age','18','hobby','wife','weight':None}

dic.setdefault('weight',160)         dic = {'name','太白金星','age','18','hobby','wife','weight':160}

pop       

按照键删除

ret = dic.pop('age')                按照键删除掉键值对

ret = dic.pop('age1')              没有对应的键不会报错   有返回语  不经过设置一般是None

可以设置提示语

ret = dic.pop('age1','没有此键')

clear

清空

dic.clear()

print(dic)

popitem

python3.6版本之后命令为删除最后一个j键值对,3.6版本之前命令为随即删除一个键值对

ret = dic.popitem()

print(ret)

print(dic)

del

用法跟在列表时相似

del dic['name']   按照键删除键值对

del dic['name2']  没有相应键值会报错

del dic        删除整个字典

改:

dic['age'] = 30     同增的办法,无则添加,有则修改

update

dic.update(car = '逍客',money = 13000)

可以批量添加键值对到字典里

还可以将一个字典覆盖到另一个字典里

dic = {"name": "jin", "age": 18, "sex": "male"}

dic2 = {"name": "alex", "weight": 75}

dic2.update(dic)

将dic里面的键值对覆盖添加到dic2中

print(dic) {'name': 'jin', 'age': 18, 'sex': 'male'}

print(dic2) {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

查:

1.相对不好的方式

print(dic['age'])

print(dic['age1'])  如果没有此键会报错

2.get

print(dic.get('age'))

没有此键默认返回None

print(dic.get('age1'))

可以设置返回值

print(dic.get('age1', '没有此键'))

字典的for循环

dic = {'name','太白金星','age','18','hobby','wife'}

for i in dic:

print(i)

 

dic.keys()   打印出所有的键

dic.values()    打印出所有的值

dic.items()   打印出所有的键和值

可以用for循环打印出所偶的键 所有的值 所有的键和值

都可以转化为list

ret = dic.keys()

print(list(ret))

 

a = 18

b = 32

a, b = b, a

print(a,b)

 

print(dic.items())

for k,v in dic.items():     利用分别赋值

    print('这是键:', k)

    print('这是值:', v)

 

字典的嵌套

dic = {
'name_list': ['博哥', '菊哥', 'b哥', 'alex'], 'barry': {
'name': '太白金星', 'age': 18, 'hobby': 'wife', } } 1,给这个列表['博哥', '菊哥', 'b哥', 'alex'] 追加一个元素 '老男孩'。 l1 = dic['name_list'] # print(l1) l1.append('老男孩') print(dic) 简写; dic['name_list'].append('老男孩') print(dic) 2,将这个列表['博哥', '菊哥', 'b哥', 'alex']中的alex变成首字母大写。 print(dic['name_list'][-1].capitalize()) dic['name_list'][-1] = dic['name_list'][-1].capitalize() print(dic) 3,将这个键值对 'name': '太白金星' 的 '太白金星' 改成男神。 先通过dic 找到小字典 print(dic['barry']) 在通过小字典将name 对应的值更改 dic['barry']['name'] = '男神' print(dic) 4,给barry对应的小字典增加一个键值对: weight: 160 dic['barry']['weight'] = 150 print(dic) 另加: 按数据类型的的划分 容器型与非容器型划分: 容器型数据类型: list tuple dict set 非容器型数据类型: int str bool 按可变与不可变划分: 可变(不可哈希)的数据类型 : list dict set 不可变(可哈希)的数据类型: int str bool tuple

转载于:https://www.cnblogs.com/biulo/p/10486305.html

你可能感兴趣的文章
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>