Python基础教程(5)数据类型之字典dict
一、Python字典介绍
· 字典是一种映射类型的数据,它的元素是由键值对(key:value)组成,
· 字典中的Key不能重复,如果Key出现重复情况,最后出现的Key会覆盖前面的Key
· 字典中存放的数据是可变的,但是Key必须为不可变类型(字符串、数字、元组)。因为字典通过可以被哈希的Key来进行数据查找,这样可以让查询速度比列表和元组都更快。也由于哈希算法的特性,字典中存放的Key需要是可哈希、不可变的,所以当字典嵌套其他类型数据时不能使用列表来作为字典的Key。
· 在Python3.6之前字典中的元素都是无序的,要查找或者添加字典中的元素时需要使用字典中的Key,不能使用下标
· 与列表相比,会占用更多的内存,属于空间换时间
二、Python字典使用
1、创建字典
#使用花括号创建字典
user_info = {'name':'tanglu','age':18,'height':180}
user_info = {
"age":12,
"name":'tanglu'
}
#使用字典函数创建字典
print(dict({'name':'tanglu','age':18,'height':180})
2、查询字典
#通过指定key来获取值,如果key不存在则会报出Key Error的错误
user_info = {'name':'tanglu','age':18,'height':180}
print (user_info) #输出为{'name': 'tanglu', 'age': 18, 'height':180,'id': 1}
print (user_info['name']) #输出为tanglu
#使用get()方法指定key的值,如果key不存在返回none
print(user_info.get('name')) #输出tanglu
#判断字典中是否存在某元素
print ('age' in user_info) #True
3、添加\修改字典中的元素
user_info["id"] = 1 #添加id这个key,值为1。如果字典中已经存在该key,则是修改该key的值
4、删除字典中的元素,如果该key不存在则会报出Key Error的错误
del user_info['id']
5、通过item方法遍历字典中的键值
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.items():
print(f"\nKey: {key}")
print(f"Value: {value}")
info = {"age":12, "status":True,"name":"tanglu"}
for item in info.key():
print(item)
info = {"age":12, "status":True,"name":"tanglu"}
for item in info.values():
print(item)
info = {"age":12, "status":True,"name":"tanglu"}
for key,value in info.items():
print(key,value)
6、字典的嵌套使用
当字典中某一个key需要有多个值时,可以在字典中嵌套一个列表来实现
#字典嵌套列表
favorite_languages = {'jen': ['python', 'ruby'],'sarah': ['c'],'edward': ['ruby', 'go'],'phil': ['python', 'haskell']}
#列表嵌套字典
address_book = [
{'name': '张三', 'age': 6, 'height': 120},
{'name': '李四', 'age': 6, 'height': 110},
{'name': '王五', 'age': 7, 'height': 130},
]
三、Python字典常用方法
items():获取字典中的所有键值
#遍历字典中的键值并传送给2个变量
student_info = {'zhangsan':'boy','lisi':'boy'}
for x,y in student_info.items():
print("{0} is a {1}".format(x,y))
for key,value in dict1.items():
if value >90:
print (key)
keys():获取字典中的每个key
print (info.keys()) #使用key函数获取字典中所有的key
values():获取字典中每个key所对应的值
print (info.values()) #values函数获取所有值
book = {'书名':'三体','作者':'刘慈欣','价格':'20'}
for i in book.values():
print(i)
pop():在字典中没有remove()方法,要删除数据的话需要使用pop()或者popitem()方法
info = { 'name':'tanglu','age':18}
result=info.pop('name') #删除name这个key,其值赋值给了result变量作为调用
print(result) #输出tanglu
get():用于获取字典中某个key的值,如果key不存返回默认值None,而不是直接让程序报错
#get(key,default) #如果字典中存在这个key则返回它的值,否则返回设置的默认值,没有设置默认值的话返回none
info1 = {"名字":"唐路","年龄":"18","性别":"男"}
info2 = info1.get("名字")
print(info1) #输出{'名字': '唐路', '年龄': '18', '性别': '男'}
print(info2) #输出唐路
print (info1.get('测试','没有该key')) #输出没有该key
update():如果字典中没有键就添加,如果已存在就更新其值,一次可以添加或者修改多个元素
info = { 'name':'tanglu','age':18}
info.update({'age':11,'sex':'man'})
print(info) #输出{'name': 'tanglu', 'age': 11, 'sex': 'man'}
clear():清空字典
info = { 'name':'tanglu','age':18}
info.clear()
setdefault():如果字典中存在指定的key就返回值,否则就创建Key并设值
info = { 'name':'tanglu','age':18} info.setdefault('sex','male') print(info) #输出{'name': 'tanglu', 'age': 18, 'sex': 'male'}
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论