python学习(字典详解)

本文详细介绍了Python字典,包括其作为映射类型的特性、键值对的无序性及唯一性,以及如何通过键进行索引。内容涵盖字典的创建、删除操作、浅复制、formkeys()、get()、values()、in操作符、item()、keys()、pop()和popitem()等函数的使用方法。

字典

是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key):必须使用不可变类型,即键只能是数字,字符,元组类型,不能是集合,列表和字典类型

值(value):可以是任何类型。

注意:

  • 1、字典是一种映射类型,它的元素是键值对。
  • 2、字典的关键字必须为不可变类型,关键字是唯一的
  • 3、创建空字典使用 { }

字典形式

d={32:23} #字典键是数字
d={'2':23} #字典键是字符类型
d={(23,12):24} #字典是元组类型的
d={52:23,'sf':52,(52,51):52,23:{52},33:[52,12]}  #字典键3种形式,值6种形式

字典索引

d={52:23,'sf':52,(52,51):52,23:{52},33:[52,12]}  #字典键3种形式,值6种形式
d[52] #值为23
d[33] #值为列表[52,12]
d[33][0] #值为52

字典函数

删除

del d[33] #删除键32
d.clear() #清空字典
del dict  #删除字典

浅复制

dcopy = d.copy()

formkeys()方法

  • seq -- 字典键值列表。
  • value -- 可选参数, 设置键序列(seq)对应的值,默认为 None
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("新的字典为 : %s" %  str(dict))
dict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" %  str(dict))
'''
新的字典为 : {'age': None, 'name': None, 'sex': None}
新的字典为 : {'age': 10, 'name': 10, 'sex': 10}
'''

get()方法

 get() 函数返回指定键的值,如果值不在字典中返回默认值

d.get(33) #可以判断是否存在键33

 values() 方法

返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值。

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

'''
输出结果
字典所有值为 :  ['female', 7, 'Zara']

'''

in操作符

用于判断是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。

item()函数

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

dict = {'Name': 'Runoob', 'Age': 7}
for i,j in dict.items():
    print(i, ":\t", j)

'''
输出结果
Name :   Runoob
Age :    7
'''

keys()

keys() 方法返回一个可迭代对象,可以使用 list() 来转换为列表。

>>> dict = {'Name': 'Runoob', 'Age': 7}
>>> dict.keys()
dict_keys(['Name', 'Age'])
>>> list(dict.keys())             # 转换为列表
['Name', 'Age']
>>> 

字典所有的键为 : dict_keys(['Age', 'Name'])

pop()方法

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

>>> site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
>>> pop_obj=site.pop('name')
>>> print(pop_obj)
菜鸟教程

popitem()

随机返回并删除字典中的一对键和值(一般删除末尾对)。

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.popitem()
print(pop_obj)   
print(site)

'''
输出结果
('url', 'www.runoob.com')
{'name': '菜鸟教程', 'alexa': 10000}
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值