Python入门第七天-字典和集合

day7-字典和集合

一、字典

数据需要区分就用字典,不需要区分就用列表

1、字典存在的价值

  • 可以在同时保存多个意义不同的数据的时候通过key来对数据进行区分和说明

2、什么是字典(dict)

(1)字典
  • 字典是容器型数据类型,将{}作为容器的标志,里面多个元素(元素的键值对)用逗号隔开
  • {键1:值1,键2:值2,键3:值3}
(2)字典的元素
  • 必须是键值对
  • 键 - 必须是不可变数据(数字,字符串,元组),一般用字符串(功能是对值进行说明);必须是唯一的,同一个键在字典里只能出现一次
  • 值 - 任何类型的数据都可以,还可以重复(值才是字典真正想要保存的数据)
  • 字典是可变的(支持增删改)
  • 字典是无序的(不支持下标,顺序不影响结果)
  • a.空字典
d1 = {
   }
print(type(d1), d1)   # <class 'dict'> {}
  • b.键是任何不可变的数据
d2 = {
   'abc': 100, 12: 200, (10, 20): 300}
print(d2)    # {'abc': 100, 12: 200, (10, 20): 300}
  • c.键如果是可变的列表,会报错
# d3 = {'abc': 100, 12: 200, [10, 20]: 300}
# print(d3)
# TypeError: unhashable type: 'list'
  • d.键是唯一的
d4 = {
   'name': '小明', 'name': '小话'}
print(d4)    # {'name': '小话'}
  • e.字典无序
d6 = {
   'name': '张三', 'age': 30}
d7 = {
   'age': 30, 'name': '张三'}
print(d6 == d7)   # True

3、字典元素的增删改查

(1)查 - 获取字典的值

不等于切片,切片只有有序序列才可以

a.查单个值
  • 字典[key] - 获取字典中指定key对应的值
  • 字典.get(key) - 获取字典中指定key对应的值;如果key不存在不报错,把None返回
  • 字典.get(key.默认值) - 获取字典中指定key对应的值;如果key不存在不报错,把默认值返回
  • 这三种方法在key存在的时候没有任何差别,主要是当key不存在的时候有差别
dog = {
   'name': '旺财', 'sex': '公狗', 'color': '黄色', 'breed': '土狗', 'age': 2}
print(dog['name'], dog['breed'])   # 旺财 土狗
# print(dog['height'])   # 报错:KeyError: 'height'

print(dog.get('age'))     # 2
print(dog.get('height'))   # None

print(dog.get('color', '黑色'))  # 黄色
print(dog.get('height', 0))     # 0
b.遍历
  • for 变量 in 字典:

​ 循环体

  • 注意:变量依次取到的是字典的每个key
dog = {
   'name': '旺财', 'sex': '公狗', 'color': '黄色', 'breed': '土狗', 'age': 2}
for x in dog:
    print('x:', x, dog[x])
'''
x: name 旺财
x: sex 公狗
x: color 黄色
x: breed 土狗
x: age 2
'''
# 练习:1)统计班级中不及格学生的人数
# 2)计算所有学生的平均分
classes = [
    {
   'name': '小明', 'age': 26, 'score': 90, 'sex': '男'},
    {
   'name': 'sut1', 'age': 13, 'score': 89, 'sex': 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值