【第三章-基础】Python 字典

3. 字典

含义:不可变序列,无序序列,键值对存储

表示:字典用放在花括号{}中一系列键值对表示

字典的特点:
1.字典中的所有 元素都是一个key-value对,key不允许重复,value可以重复
2.字典的元素是无序的
3.字典中的key必须是不可变对象
4.字典也可以根据需要动态地伸缩
5.字典会浪费较大的内存,是一种使用空间换时间的数据结构
 

3.1 字典的创建
"""使用花括号创建字典"""
scores={"张三":100,"李四":10,"wangwu":99}
print(scores)

"""使用dict()函数创建"""
student =dict(name="jacl",age=10)
print(student)

# 创建空字典
d={}
print(d)
3.2 字典的获取 

1. 获取方法:[ ] 和 get()方法

"""如何获取字典中的值"""
scores={"张三":100,"李四":10,"wangwu":99}

# 使用[]的方法
print(scores["张三"])

# 使用get()方法

print(scores.get("李四"))

注意事项:
1. [ ] 如果字典中不存在指定的Key,抛出keyError异常
2. get()方法取值,如果 字典中不存在指定的key,并不会抛出KeyError异常而是返回None,可以通过参数设置默认的value,以便指定的Key不存在时返回

##get()来访问值

方法get()的第一个参数用于指定健,是必不可少的,第二个健为指定健不存在时要返回的值,是可选的

2. 获取字典视图的三个方法
keys()--------->获取字典中所有的key
values()------->获取字典中所有value的值
items()-------->获取字典中所有的Key,value对

#  获取所有的keys值
scores={"张三":100,"李四":10,"wangwu":99}
keys=scores.keys()
print(keys)
print(list(keys))

# 获取所有的values值
value=scores.values()
print(value)
print(list(value))

# 获取所有的键值对

item=scores.items()
print(item)
print(list(item))
3.3 字典的增删

# key存不存在的 判断
 in      指定的key在字典中存在返回TRUE
 not  in  指定的key在字典中不存在返回TRUE

scores={"张三":100,"李四":10,"wangwu":99}
print("张三"in scores)
print("张三"not in scores)

# 删除指定键值对
del scores["张三"]
print(scores)

# 新增元素
scores["1"]=98
print(scores)

# 更改元素
scores["1"]=94
print(scores)

结果

True
False
{'李四': 10, 'wangwu': 99}
{'李四': 10, 'wangwu': 99, '1': 98}
{'李四': 10, 'wangwu': 99, '1': 94}

3.4 遍历

说明:遍历数组、可以通过keys()方法对所有健进行遍历,values()对所有值进行遍历,item()对所有键值对进行遍历

scores={"张三":100,"李四":10,"wangwu":99}
# 字典元素的遍历
for item in scores:
   print(item,scores[item])

print("************************")

# 使用keys(),只对健进行遍历,输出
for i in scores.keys():
   print(i)
print("************************")

# 使用values()只对值进行遍历,输出
for i in scores.values():
   print(i)

# 使用items()对键值对进行遍历,可以声明两个变量,用于存储键值对中的健和值
print("************************")
for i,j in scores.items():
   print(i,j)

结果:

张三 100
李四 10
wangwu 99
************************
张三
李四
wangwu
************************
100
10
99
************************
张三 100
李四 10
wangwu 99

3.5 嵌套

##字典列表

说明:先创建几个字典,然后再创建一个列表,将字典存储到列表中

# 声明一个空数组进行接收
dog=[]

# 创建多个狗
for i in range(10):
   new_dog={"color":'Red',"type":"jiwaa",'age':3}
   dog.append(new_dog)

# 截取前五个
for j in dog[:5]:
   print(j)

结果:

{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}

注意:可配合随机数,进行随机生成

##在字典中嵌套列表

# 在字典中嵌套列表
dog={
   "color":["red","green",'black','white'],
   "name":["1",'2','3','4']
}

for item in dog["color"]:
   print(item)

解释:字典的每一个值,都是一个列表,所以可以直接遍历

3.5 字典生成式

内置函数zip():用于将可迭代对象作为参数,将对象中的元素打包成为一个元祖,然后返回由这些元祖组成的列表

items=["fruits","books","other"]
prices=[96,97,98]
d=zip(items,prices)
print(list(d))   #利用列表进行输出

结果:[('fruits', 96), ('books', 97), ('other', 98)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值