day07字典

本文详细介绍了Python字典的使用,包括字典存在的价值、定义、元素的增删改查方法,以及字典的相关操作和函数。字典是Python中一种可变的、无序的数据类型,通过键值对存储数据。文中还涵盖了字典的运算符、内置函数,如len、dict,以及字典的方法,如clear、copy等。此外,提供了相关的编程作业,包括处理学生信息、统计不及格学生、计算平均年龄等实际问题。
摘要由CSDN通过智能技术生成

day07字典

01. 字典

1. 字典存在的价值

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

stu = {
   '姓名': '小明',  'age': 30,  'tel': '188',  'score': 90,  '体重': 70}
print(stu['姓名'])
2. 什么是字典(dict)

字典是容器型 数据类型;将{ }作为容器的标志,

里面有多个元素(元素是 键值对)用逗号隔开: {键1:值1, 键2:值2, 键3:值3,…}

字典的元素:必须是键值对;
- 必须是不可变数据, 一般用字符串; 唯一的(功能是对值进行说明)
- 任何类型的数据都可以,可以重复。 (值才是字典真正要保存的数据)

**字典元素的特点:1)可变的 ( 支持增删改 ); 2)字典是无序 (不支持下标) **

空字典
d1 = {
   }
print(type(d1), d1)    # <class 'dict'> {}

键不可变

d2 = {
   'abc': 100, 12: 200, (10, 20): 300}
print(d2)

d3 = {
   'abc': 100, 12: 200, [10, 20]: 300}   # 报错! 列表不能作为key(键)列表可变

键是唯一的

d4 = {
   'name': '小明', 'name':'小花', 'age': 18}
print(d4)   # {'name': '小花', 'age': 18}

值是任何类型的数据

d5 = {
   'k1': 90, 'k2': 1.23, 'k3': True, 'k4': 'abc', 'k5': [1, 2], 'k6': {
   'a': 10}, 'k7': lambda x: x*2}
print(d5)

字典无序

d6 = {
   'name': '张三', 'age': 30}
d7 = {
   'age': 30, 'name': '张三'}
print(d6 == d7)   # True

02.元素的增删改查

1. 查 - 获取字典的值

1 ) 获取单个值

字典[key] - 获取字典中指定key对应的值;如果key不存在会报错
字典.get(key) - 获取字典中指定key对应的值;如果key不存在不报错,把 None 返回
字典.get(key, 默认值) - 获取字典中指定key对应的值;如果key不存在不报错,把 默认值 返回

dog = {
   'name': '旺财', 'sex': '公狗', 'color': '黄色', 'breed': '土狗', 'age': 2}

print(dog['name'], dog['breed'])         # 旺财 土狗

print(dog['height'])                     # KeyError: 'height' 没有

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

print(dog.get('color', '黑色'))          # 黄色
print(dog.get('height', 0))             # 0

2) 遍 历

for 变量 in 字典:
循环体

注意:变量取到的是字典的每个key

dog = {
   'name': '旺财', 'sex': '公狗', 'color': '黄色', 'breed': '土狗', 'age': 2}
for x in dog:
                               
    print('x:', x, dog[x])   
    x ==========> name , sex ,co.or, breed, age
    x, dog[x] ==> name 旺财, sex 公狗, color 黄色, breed 土狗, age 2
    

练习:

1)统计班级中不及格学生的人数

2)计算所有学生的平均分

classes = [
    {
   'name': '小明', 'age': 26, 'score': 90, 'sex': '男'},
    {
   'name': 'sut1', 'age': 13, 'score': 89, 'sex': '女'},
    {
   'name': 'stu2', 'age': 22, 'score': 77, 'sex': '女'},
    {
   'name': 'stu3', 'age': 34, 'score': 56, 'sex': '男'},
    {
   'name': 'stu4', 'age': 15, 'score'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值