元组
# 1.使用多个变量同时获取列表或者元组的元素
# 要求变量的个数必须和元组/列表元素的个数保持一致
# t1=(10,20,30,40)
# a,b,c,d=t1
# print(a,b,c,d)
# 2.使用多个变量同时获取列表或者元组的元素
# 当变量的个数小于元素的个数的时候,必须在某一个变量前*
# 获取的时候先让不带*的变量按照顺序获取对应的数据,把剩下的全部保存到带*的变量中
# list1=[10,20,30,40,50,60]
# *x,y,z=list1
# print(*x,y,z)
# student=('小明',18,'男',89,78,99)
# name,age,gender,*scores=student
# print(name,age,gender,scores)
# 3.元组在没有歧义的情况下,()可以省略
# t1=(10,20,30)
# print(t1)
# t2=10,20,30
# print(t2,type(t2))
字典
# 字典
# dict={key1:元素1,key:元素2,....}
#定义一个变量保存一个学生信息
# student=['小明','小花','男',18,89,78,34]
# print(student[0])
# student1={'name':'小明','gender':'男','年龄':67,'chinese':89}
# print(student1['name'])
# 当需要保存多个意义不同的数据的时候,就使用字典
# 1.什么是字典(dict)
# 1)字典是容器型数据类型(序列);将{}作为容器的标志,里面多个键值对用逗号隔开(一个键值就是一个元素):
# 2)字典是可变的(支持增删改):字典无序(不支持下标操作)
# 3)元素的要求 - 元素是键值对
# 键的要求:只有不可变类型的数据可以作为键,一般使用字符串;键唯一
# 值的要求:没有要求
#空字典
# d1={}
# print(d1,type(d1))
#字典无序
# print({'a':10,'b':20}=={'b':20,'a':10})
# 键必须是不可变的数据
# d2={'a':10,10:20,[1,2]:30}
# print(d2) #报错
# 键是唯一
# d4={'a':20,'b':1,'a':40,'c':50}
# print(d4)
# 字典的增删改
# 1.查 - 获取值
# 1)查单个
# ①字典[键] - 获取指定键对应的值
# stu={'name':'小明','age':20,'gender':'男'}
# print(stu['name']) 如果键不存在,就会报错
# ②字典.get(键) - 获取指定键对应的值
# stu={'name':'小明','age':20,'gender':'男'}
# print(stu.get('name'))
# print(stu.get('age')) 如果键不存在,返回空值
# ③字典.get(键,默认值) - 获取指定键对应的值,键不存在,返回指定默认值
# students=[{'name':'小明','age':20,'gender':'女'}
# {'name':'小红','age':20,'gender':'女'}
# {'name':'小刚','age':20,'gender':'女'}
# {'name':'小智','age':20,'gender':'女'}
# ]
# count=0
# sum1=0
# for x in students:
# #确定键一定存在用[]语法获取
# if x['gender']=='女':
# count+=1
# #键可能存在可能不存在使用get方法获取
# sum1+=x.get('score',0)
# print('女生人数:',count,'总分:',sum1)
# 2)遍历 (了解)
# for 变量 in 字典:
# pass
# for x in students:
# print(x)
# 2.增,改
# 字典[键]=值 - 如果键存在就修改指定键对应的值;如果键不存在就添加键值
students={'name':'小明','age':20,'gender':'女'}
#键存在就修改
students['name']='小花'
print(students)
#键不存在就添加
students['score']=100
print(students)
# 只添加不修改
students.setdefault('age',30)
print(students)
students.setdefault('height',180)
print(students)
orders=[
{'goods_name':'泡面','price':3.5,'discount':0.9,'count':3},
{'goods_name':'矿泉水','price':2,'count':2},
{'goods_name':'火腿肠','price':1.5,'count':5},
{'goods_name':'卤蛋','price':2.5,'discount':0.9,'count':4},
]
for x in orders:
x.setdefault('discount',1)
print(orders)
# 3.删 - 删除键值对
# 1)del 字典[键] - 删除指定键对应的键值对
students={'name':'小明','age':20,'gender':'女'}
del students['gender']
print(students)
#2)字典.pop(键) - 取出指定键对应的值
c=students.pop('name')
print(students,c)
字典和列表在实际生活中的应用
# 字典和列表在实际生活中的应用
#定义一个变量保存一个班级信息
class1 = {
'name': 'Python2107',
'address': '18教',
'lecturer': [
{'name': '余婷', 'qq': '726550822', 'age': 18},
{'name': '骆昊', 'qq': '67273', 'age': 38}
],
'students': [
{'name': 'stu1', 'tel': '101922', 'gender': '男', 'age': 20, 'linkman': {'name': '张三', 'tel': '120'}},
{'name': 'stu2', 'tel': '1012911', 'gender': '女', 'age': 19, 'linkman': {'name': '李四', 'tel': '119'}},
{'name': 'stu3', 'tel': '0192342', 'gender': '女', 'age': 30, 'linkman': {'name': 'Bob', 'tel': '100'}},
{'name': 'stu4', 'tel': '1101823', 'gender': '男', 'age': 29, 'linkman': {'name': '王五', 'tel': '110'}},
{'name': 'stu5', 'tel': '102323', 'gender': '男', 'age': 23, 'linkman': {'name': '老王', 'tel': '1203'}},
{'name': 'stu6', 'tel': '192389123', 'gender': '女', 'age': 20, 'linkman': {'name': '小明', 'tel': '130'}},
{'name': 'stu7', 'tel': '099121234', 'gender': '男', 'age': 25, 'linkman': {'name': '小花', 'tel': '11923'}}
]
}
# 1) 班级名称
print(class1['name'])
# 2)获取第一个讲师的姓名
print(class1['lecturer'][0]['name'])
# 3)获取所有讲师的qq
for i in class1['lecturer']:
print(i['qq'])
# 4)获取所有学生的姓名
for i in class1['students']:
print(i['name'])
# 5)统计学生女生的个数
c=0
for i in class1['students']:
if i['gender']=='女':
c+=1
print(c)
# 6)获取所有尾号是0的联系人的姓名
for i in class1['students']:
if i['linkman']['tel'][-1]=='0':
print(i['linkman']['name'])
# 字典相关函数和操作方法
# 1.运算符
# 相对列表,字典不支持:+、*、比较大小
# 2.相关函数
#dict(数据) - 将数据转换成字典
# 数据的要求:
# 1)这个数据必须是一个序列
# 2)序列中元素必须是有且只有两个元素的小序列,两个元素中第一个元素是不可变的数据
x=['ab',range(2),(10,20)]
print(dict(x))
# 3.相关方法
# 1)字典.clear() - 清空字典
#2)字典.copy - 赋值字典产生一个一模一样的新字典(地址不同)
#3)
# ①字典.values() - 获取字典所有的值,返回一个新的序列
# ②字典.keys() - 获取字典所有的键,返回一个新的序列
# ③字典.items() - 获取所有的键和值,每一个键值对应一个元组,返回一个新的序列
dog={'name':'旺财','age':2,'color':'黄色','breed':'土狗'}
print(dog.values())
print(dog.keys())
print(dog.items())
for x,y in dog.items():
print(x,y)
# 练习:使用列表推导式交换字典的键和值
dict1 = {10: 20, 'a': 'b', 'c': 30}
c={x:y for y,x in dict1.items()}
print(c)
# 字典推导式
# {表达式:表达式 for 变量 in 序列}
# {表达式:表达式 for 变量 in 序列 if 条件语句}
# 4)字典1.update(字典2) - 将字典2中所有的键值对添加到字典1
465

被折叠的 条评论
为什么被折叠?



