day8 - 字典作业

本文介绍了Python字典的基本操作,包括通过变量获取元组或列表元素、字典的定义、增删改查方法,以及相关函数和方法的使用。通过实例展示了字典的创建、查找、更新和删除操作,并探讨了字典的无序性和键的唯一性。此外,还讨论了如何使用列表推导式交换字典的键和值。
摘要由CSDN通过智能技术生成

字典

1.用变量获取元素

1.使用多个变量同时获取列表或者元组的元素
要求:变量的个数必须和元组、列表元素的个数保持一致
t1 = (1, 2, 3, 4, 5)
a, b, c, d, e = t1
print(a, b, c, d, e)   # 1 2 [3, 4, 5]


2.使用多个变量同时获取列表或者元组的元素
#当变量的个数小于元素的个数,必须在某一个变量前面加*
#获取的时候先让不带好的按顺序获取对应的数据,再把剩下的给带号的变量中
t1 = (1, 2, 3, 4, 5)
x, y, *z = t1
print(x, y, z)   # 1 2 [3, 4, 5]
a, *b, c = t1
print(a, b, c)    # 1 [2, 3, 4] 5
3,元组在没有歧义的情况下。()可以省略。
t2 = 10, 20, 30
print(t2, type(t2))  # (10, 20, 30) <class 'tuple'>

2.认识字典

#定义一个变量,保存一个学生的信息
#当需要保存多个意义不同的数据的时候,就使用字典

#1,什么是字典(dict)
"""
1.字典是容器型数据类型(序列);将{}作为容器的标志,里面多个键值对用逗号隔开(一个键值对就是一个元素)
{键1:值1,键2:值2,键3:值3}
2.字典是可变的(支持增删改);字典无序
3.元素的要求  -  元素是键值对
键的要求:只有不可变类型的数据可以作为建,一般使用字符串,唯一性
值的要求:没有要求

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

print({‘a’: 30, ‘n’: 90} == { ‘n’: 90, ‘a’: 30}) # True

键必须是不可变的数据
d2 = {'k': 0, 'j': 23, [qw]: 90}  # NameError: name 'qw' is not defined
print(d2)
#键是唯一的
d3 = {'a': 12, 'v': 34, 'f': 89, 'a': 120}
print(d3)    # {'a': 120, 'v': 34, 'f': 89}

3.字典的增删改查

#1. 查
#1)查单个
"""
字典['键'] -   获取指定键对应的值

字典.get(键)   -  获取指定键对应的值,建不存在返回None
字典.get(键,默认值)   -   获取指定键对应的值,建不存在返回默认值
"""
stu = {'name': '阿三', 'age': 19, "gender": '男'}
print(stu['name'])
print(stu['gender'])

print(stu.get('name'))
print(stu.get('age'))
print(stu.get('chinese',0))  # None
stu = [
{'name': '阿三', 'age': 19, "gender": '男','score': 90},
{'name': '阿1', 'age': 29, "gender": '男'},
{'name': '阿2', 'age': 12, "gender": '女','score': 80},
{'name': '阿3', 'age': 11, "gender": '男','score': 93},
]
求平均年龄
age = 0
for i in stu:
 age += i['age']
print(age / len(stu))
求总分
sum1 = 0
for i in stu:
 sum1 += i.get('score',0)
print(sum1)
2) 遍历
"""
for 变量 in 字典:
 pass

循环出来的是键
"""
for i in stu:
 for j in i:
     print(j)
 break
2.增,改
"""
字典[键] = 值    -    如果键存在就修改指定键值,如果不存在就添加键值对

字典.setdefault(键,值)  -  只添加 不修改 不会覆盖
"""

stu = {'name': '阿三', 'age': 19, "gender": '男'}

stu.setdefault('height',178)
print(stu)

stu = [
 {'name': '阿三', 'age': 19, "gender": '男', 'score': 90},
 {'name': '阿1', 'age': 29, "gender": '男'},
 {'name': '阿2', 'age': 12, "gender": '女', 'score': 80},
 {'name': '阿3', 'age': 11, "gender": '男', 'score': 93},
]

for i in stu:
 i.setdefault('score', 0)
print(stu)
3、删 - 删除键值对
"""
1) del 字典[键]    -   删除指定的键值对
2)字典.pop(键)    -   取出指定键值对

"""
# 1. 运算符
#  相对列表,字典不支持:+、*、比大小

4. 相关函数

"""
dict(数据)   -   将数据转换成字典

对数据的要求:
1) 这个数据必须是一个序列
2) 序列中的元素必须是  "有且只有两个元素"   的小序列,并且第一个元素中是不可变的元素
"""
x = ['as',range(2),(12,34)]
result = dict(x)
print(result)
2. 相关方法
"""
1) 字典.clear()  -   清空字典
2) 字典.copy()   -   复制字典,产生一个一模一样的新字典,地址不一样
2) 字典.keys()   -   获取字典所有的"键",返回一个新的 "序列"
2) 字典.values()   -   获取字典所有的"值",返回一个新的"序列"
2) 字典.items()   -   获取所有的键和值,每一个键值对对应一个"元组",返回一个新的序列
2) 字典.copy()   -   
"""
"""
# 字典.items()
dog = {'name': '二哈', 'age': 4, '毛色': 'blue'}
for key,value in dog.items():
    print(key,value,sep=' : ')
"""
# 练习:使用列表推导式交换字典的键和值
dict1 = {10: 20, 'a': 'b', 'c': 30}
# {20: 10, 'b': 'a', 30: 'c'}
# 字典推导式
dict2 = {10: 20, 'a': 'b', 'c': 30}
print({value: key for key, value in dict2.items()})

"""
{a:b for 变量 in 序列}
{a:b for 变量 in 序列 if 条件语句}
"""
4) 字典1.update(字典2) - 将字典2中都添加到字典1中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值