一.元组
元组就是不可变的列表; 查、in和ont in、数学运算、比较运算、相关函数- 元组都支持;
1.什么是元组(tuple)
(元素1,元素2,元素3,…) 不可变;有序 空元组: ti=() 有一个元素的元组:ti=(10,)
2.使用多个变量同时列表或者元组的元素
t1=[10,20,30,40]
a,b,c,d=t1
print(a,b,c,d)
3.当变量的个数小于元素的个数
获取的时候先让不带号的变量获取对应的数据,把剩下的全部保存到带的变量中;
list1=[1,2,3,4,5,6]
x,y,*z=list1
print(x,y,z)
4.元组在没有歧义的情况下,()可以省略
二.字典
1.什么是字典
1)字典是容器型数据类型(序列);将{}作为字典的标志,里面多个键值对用逗号隔开一个:
{键1:值1,键2:值2,…}
2)字典是可变的(支持增删改);字典无序(不支持下标操作)
3)元素的要求- 元素是键值对
键的要求:只有不可变类型的数据可以作为键,一般使用字符串;键唯一; 空字典 d1={}
2.查
1)查单个
字典[键] - 获取对应键的值,键不存在会报错; 字典.get(键) -获取指定键对应的值,键不存在返回None 字典.get(键,默认值) - 获取指定的键对应的值;键不存在返回指定默认值
2) 遍历
for 键 in 字典: psss
3.增、改
字典[键]=值 - 如果键存在就修改键对应的值;如果键不存在就添加键值对; 字典.setdefault(键,值) - 添加一个键值对;如果键已存在,不做修改;
stu={'name':'小明','age':20,'gander':'男','tel':'11234'}
stu['name']='小花'
print(stu)
stu['scores']=100
print(stu)
stu.setdefault('tel','11345')
print(stu)
stu.setdefault('地址','上海路')
print(stu)
4.删 -删除键值对
del 字典[键] - 删除指定键对应的键对,键不存在会报错 字典.pop(键) - 取出指定键对应的值
5.字典和列表在实际开发中的问题
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'}}
]
}
print(class1['name'])
print(class1['lecturer'][0]['name'])
for x in class1['lecturer']:
print(x['qq'])
for x in class1['students']:
print(x['name'])
count=0
for x in class1['students']:
if x['gender'] == '女':
count += 1
print(count)
list1=class1['students']
for x in list1:
if x['linkman']['tel'][-1] == '0':
print(x['linkman']['name'])
三.字典相关的函数和方法
1.运算符
相对列表、字典不支持:+、*、比较大小
2.相关函数
dict(数据) - 将数据转化成字典 数据的要求:
1)这个数据必须是一个序列
2)序列中的元素必须是有且只有两个元素的小序列,两个元素中第一个元素是不可变的数据;
x=['ab',range(2),(10,20)]
result=dict(x)
print(result)
3.相关方法
1)字典.clear() - 清空字典
2)字典.copy() - 复制字典,产生一个新的字典;
3) :
字典.values() - 获取字典所有的值,返回一个序列 字典.keys() - 获取所有的键,返回一个新的序列 字典.items() - 获取所有的键和值,每一个键值对应一个元组,返回一个新的序列
dict1={10:20,'a':'b','c':30}
result=dict([(value,key) for key,value in dict1.items()])
print(result)
{表达式1:表达式2 for 变量 in 序列}
{表达式1:表达式2 for 变量 in 序列 if 条件语句}
|