Python学习笔记_5_字典

1、字典

列表和字典都是可变序列。

但是列表是有序存储的,而字典是无序存储的。

字典是通过hash函数决定存储位置的。

2、字典的创建

#使用花括号创建
scores = {"张三":97,"李四":98,"王五":99}
print(scores)											#输出:{'张三': 97, '李四': 98, '王五': 99}
#使用函数dict()创建
scores = dict(张三 = 97,李四 = 98,王五 = 99)
print(scores)											#输出:{'张三': 97, '李四': 98, '王五': 99}

3、查找字典中元素的值

#使用中括号查找元素
scores = {"张三":97,"李四":98,"王五":99}
print(scores["张三"])
print(scores["陈六"])									#报错
#使用get()查找元素
scores = {"张三":97,"李四":98,"王五":99}
print(scores.get("张三"))
print(scores.get("陈六"))								#输出:None
print(scores.get("陈六",100))							#100是在查找陈六不存在时的默认值

4、字典中元素的删除

#删除一个元素
scores = {"张三":97,"李四":98,"王五":99}
del scores["张三"]
#清空整个字典
scores = {"张三":97,"李四":98,"王五":99}
scores.clear()

5、字典中元素的新增和修改

scores = {"张三":97,"李四":98,"王五":99}
scores["陈六"] = 100
scores["陈六"] = 96										#修改为新的值

6、判断元素是否在字典内

scores = {"张三":97,"李四":98,"王五":99}
print("张三" in scores)
print("张三" not in scores)

7、字典视图的获取

scores = {"张三":97,"李四":98,"王五":99}

#获取所有的键
keys = scores.keys()
print(keys)												#输出:dict_keys(['张三', '李四', '王五'])
print(list(keys))										#输出:['张三', '李四', '王五']

#获取所有的值
values = scores.values()
print(values)											#输出:dict_values([97, 98, 99])
print(list(values))										#输出:[97, 98, 99]

#获取所有的键值对
items = scores.items()
print(items)											#输出:dict_items([('张三', 97), ('李四', 98), ('王五', 99)])
print(list(items))										#输出:[('张三', 97), ('李四', 98), ('王五', 99)]

8、字典的遍历

scores = {"张三":97}
for item in scores:
  print(item,scores[item],scores.get(item))				#输出:张三 97 97

9、字典的特点

不能在字典的某一位置插入元素,因为字典存储时时无序的。

字典会浪费较大的内存,是一种用空间换时间的数据结构。

10、字典生成式

items = ["Fruits","Books","Others"]
prices = [96,78,85]										#如果键和值的数量对不上,则zip生成字典的时候按数量较少的那个确定元素的数量,剩余的舍弃。

dict = {item:price for item,price in zip(items,prices)}
print(dict)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值