python获取字典长度_Python中的字典

本文介绍了Python字典的定义、常用操作、内置函数和方法,包括字典的长度计算、类型检查、键值对遍历等,并通过实例展示了字典在存储和处理复杂数据信息时的应用。此外,还详细解释了字典的常用方法,如clear()、copy()、fromkeys()、get()、update()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 字典的定义

dictionary(字典) 是 除列表以外Python之中 最灵活的数据类型

字典同样可以用来 存储多个数据

通常用于存储 描述一个 物体的相关信息

和列表的区别

列表是 有序的对象集合

字典是 无序的对象集合

字典用 {}定义

字典使用 键值对存储数据,键值对之间使用 ,分隔

键key是索引

值value是数据

键和 值之间使用 :分隔

键必须是唯一的

值可以取任何数据类型,但 键只能使用 字符串、数字或 元组

xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}

1829785-20200101220537373-688155871.png

2 字典常用操作

在 ipython3中定义一个 字典,例如:xiaoming = {}

输入 xiaoming.按下 TAB键,ipython会提示 字典能够使用的函数如下:

In [1]: xiaoming.

xiaoming.clear xiaoming.items xiaoming.setdefault

xiaoming.copy xiaoming.keys xiaoming.update

xiaoming.fromkeys xiaoming.pop xiaoming.values

xiaoming.get xiaoming.popitem

字典内置函数&方法

Python字典包含了以下内置函数:

序号函数及描述实例

1

len(dict)

计算字典元素个数,即键的总数。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> len(dict)

3

2

str(dict)

输出字典,以可打印的字符串表示。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> str(dict)

"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"

3

type(variable)

返回输入的变量类型,如果变量是字典就返回字典类型。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> type(dict)

Python字典包含了以下内置方法:

序号函数及描述

3

radiansdict.fromkeys()

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

5

key in dict

如果键在字典dict里返回true,否则返回false

6

radiansdict.items()

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

7

radiansdict.keys()

返回一个迭代器,可以使用 list() 来转换为列表

10

radiansdict.values()

返回一个迭代器,可以使用 list() 来转换为列表

11

pop(key[,default])

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

12

popitem()

随机返回并删除字典中的最后一对键和值。

3 循环遍历

遍历就是 依次从 字典中获取所有键值对

#for 循环内部使用的 `key 的变量` in 字典

for k inxiaoming:print("%s: %s" % (k, xiaoming[k]))

提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多

4 应用场景

尽管可以使用 for in遍历 字典

但是在开发中,更多的应用场景是:

使用 多个键值对,存储 描述一个 物体的相关信息—— 描述更复杂的数据信息

将 多个字典放在 一个列表中,再进行遍历,在循环体内部针对每一个字典进行 相同的处理

card_list = [{"name": "张三","qq": "12345","phone": "110"},

{"name": "李四","qq": "54321","phone": "10086"}

]

5 常用方法

clear()

dict = {'Name': 'Zara', 'Age': 7}print ("字典长度 : %d" %len(dict))

dict.clear()print ("字典删除后长度 : %d" %len(dict))#字典长度 : 2#字典删除后长度 : 0

copy()

dict1 = {'user': 'runoob', 'num': [1, 2, 3]}

dict2= dict1 #浅拷贝: 引用对象

dict3 = dict1.copy() #浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用

#修改 data 数据

dict1['user'] = 'root'dict1['num'].remove(1)#实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,#子对象是浅拷贝所以随 dict1 的修改而修改。#输出结果

print(dict1)print(dict2)print(dict3)#{'user': 'root', 'num': [2, 3]}#{'user': 'root', 'num': [2, 3]}#{'user': 'runoob', 'num': [2, 3]}

fromkeys()

seq = ('name', 'age', 'sex')

dict=dict.fromkeys(seq)print("新的字典为 : %s" %str(dict))

dict= dict.fromkeys(seq, 10)print("新的字典为 : %s" %str(dict))#新的字典为 : {'name': None, 'age': None, 'sex': None}#新的字典为 : {'name': 10, 'age': 10, 'sex': 10}

get()

dict = {'Name': 'Runoob', 'Age': 27}print ("Age 值为 : %s" % dict.get('Age'))print ("Sex 值为 : %s" % dict.get('Sex', "NA"))#Age 值为 : 27#Sex 值为 : NA

in

dict = {'Name': 'Runoob', 'Age': 7}#检测键 Age 是否存在

if 'Age' indict:print("键 Age 存在")else:print("键 Age 不存在")#检测键 Sex 是否存在

if 'Sex' indict:print("键 Sex 存在")else:print("键 Sex 不存在")#not in

#检测键 Age 是否存在

if 'Age' not indict:print("键 Age 不存在")else:print("键 Age 存在")#键 Age 存在#键 Sex 不存在#键 Age 存在

items()

dict = {'Name': 'Runoob', 'Age': 7}for k,v indict.items():print(f'键值:{k},value值:{v}')#键值: Name, value值: Runoob

#键值: Age, value值: 7

keys()

dict = {'Name': 'Runoob', 'Age': 7}

ls=dict.keys()print(list(ls))#['Name', 'Age']

dict = {'Name': 'Runoob', 'Age': 7}print("Age 键的值为 : %s" % dict.setdefault('Age', None))print("Sex 键的值为 : %s" % dict.setdefault('Sex', None))print("新字典为:", dict)#Age 键的值为 : 7#Sex 键的值为 : None#新字典为: {'Name': 'Runoob', 'Age': 7, 'Sex': None}

update()

dict = {'Name': 'Runoob', 'Age': 7}

dict2= {'Sex': 'female'}

dict.update(dict2)print("更新字典 dict :", dict)#更新字典 dict : {'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}

values()

dict = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}print("字典所有值为 :", list(dict.values()))#字典所有值为 : ['female', 7, 'Zara']

pop()和popitem()

dict = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}

dict.pop('Age')print(dict)#{'Sex': 'female', 'Name': 'Zara'}

dict.popitem()print(dict)#{'Sex': 'female'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值