博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础(三)
阅读量:4227 次
发布时间:2019-05-26

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

大家好,今天小编给大家带来的是Python基本的数据结构-----字典。

Python字典是另一种可变容器模型,可存储任意类型对象,如字符串、数字、元组、列表等其他容器模型。

640?wx_fmt=jpeg

在Python的字典中,有两个关键的概念:键和值。而字典本身则是由许多对键值组成的。现在我们定义一个基本的字典来瞧瞧:

info={

"name":"Dolphin","age":25,"gender":"male"}

以上便定义了一个叫info的字典,在字典中存放了三对信息,分别是name,age和gender,每对信息(键和值)之间使用:来连接,每组和每组之间则是用逗号隔开,信息最外面则是用大括号括住,通过以上这个例子我们可以看出字典具备以下特点:

1、键和值之间用“:”进行连接

2、每组信息之间“,”进行隔开

3、所有的元素信息都在“{}”里面

dict = {
key1 : value1, key2 : value2 }

通过这些提示我们也不难看出字典本身这个东西是无序的,因为我们都是要依靠某个key去访问某个value,在这里已经不存在下标的说法了,所有这里就有个重点:

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

通过以上概念性的解释我们就能创建一个简单的字典了,那我们如何具体去访问字典里的值呢?很简单,我们刚刚已经说了,通过Key去访问值。

比如我们访问info字典name对应的值:

info={

"name":"Dolphin","age":20,"gender":"male"}

print(info["name"])

输出:

Dolphin

同样的,访问age:info["age"]

输出:20

如果你访问的key在字典中没有值的话,那么系统会报错:

print(info["num"])

输出:

KeyError: 'num'  

系统读不到叫num的这个key,就会报keyerror的错。

这边有个知识强调一下:字典的键值是"只读"的,所以不能对键和值分别进行初始化

看个例子:

dic = {} dic.keys = (1,2,3,4,5,6) dic.values = ("a","b","c","d","e","f")

输出:

AttributeError: 'dict' object attribute 'keys' is read-only
AttributeError: 'dict' object attribute 'values' is read-only

下面我们讲一下对字典的基本操作:

修改字典

修改字典直接指定字典的key和value即可

如果key存在,你给他指定新的值就完成了值的修改

如果key和值都不存在,就是向字典中添加一对新的键值对。

info={

"name":"Dolphin","age":20,"gender":"male"}

info["num"]=120023

info["gender"]="female"

print(info)

输出:

{'num': 120023, 'age': 20, 'name': 'Dolphin', 'gender': 'female'}

在这里小编给大家看一下代码运行三次的截图:

640?wx_fmt=png

三次输出的结果虽然是一样的,但是顺序却一直在发生变化,这也正好能说明字典的无序性。

删除字典及元素

删除字典中的元素,调用clear()方法

info.clear()

print(info)

输出:[]

删除整个字典:调用del函数

del info

print(info)

输出:

NameError: name 'info' is not defined

因为整个info都被删除了,就和没定义是一样的。所以会报错。

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

info={

"name":"Dolphin","age":20,"gender":"male","age":100}

print(info["age"])

输出:

100

字典的内置方法

radiansdict.clear()
删除字典内所有元素

这个刚刚已经演示过了

radiansdict.copy()
返回一个字典的浅复制

info={

"name":"Dolphin","age":20,"gender":"male"}

info2=info.copy()

print(info2)

输出:

{'gender': 'male', 'age': 20, 'name': 'Dolphin'}

radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

info2=info.fromkeys("hello","world")

print(info2)

输出:

{'l': 'world', 'e': 'world', 'o': 'world', 'h': 'world'}

radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值

效果和info[key]是一样的

info={

"name":"Dolphin","age":20,"gender":"male"}

print(info.get("name"))

输出:Dolphin

radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组

info={

"name":"Dolphin","age":20,"gender":"male"}

print(info.items())

输出:dict_items([('gender', 'male'), ('name', 'Dolphin'), ('age', 20)])

radiansdict.keys()
以列表返回一个字典所有的键

info={

"name":"Dolphin","age":20,"gender":"male"}

print(info.keys())

输出:

dict_keys(['name', 'gender', 'age'])

radiansdict.values()
以列表返回字典中的所有值

info={

"name":"Dolphin","age":20,"gender":"male"}

print(info.values())

输出:

dict_values(['Dolphin', 20, 'male'])

pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

info={

"name":"Dolphin","age":20,"gender":"male"}

info.pop("gender")

print(info)

输出:

{'name': 'Dolphin', 'age': 20}

今天就到这里吧!

下期见!

转载地址:http://nanqi.baihongyu.com/

你可能感兴趣的文章
Squid代理服务器搭建亿级爬虫IP代理池
查看>>
JupyterNotebook‘s Magic
查看>>
在Linux 上部署Jenkins和项目
查看>>
Python+requests+unittest+excel实现接口自动化测试框架
查看>>
那些年我们听过的互联网公司的套路?
查看>>
谈谈python里面那些高级函数
查看>>
40行代码带你免费看《海贼王-和之国》篇章
查看>>
搭建炫酷的服务器监控平台
查看>>
垃圾分类:人机搭配,干活不累
查看>>
Nginx
查看>>
Memcached,session共享
查看>>
Tomcat,varnish
查看>>
SVN, 制作RPM包
查看>>
HTML 标签说明
查看>>
CSS 基本语法
查看>>
10.shell基础
查看>>
为人处世小技巧
查看>>
结构体知识汇总
查看>>
内存操作越界略述
查看>>
消息与消息队列
查看>>