元组
- 符号 : (1,2,3) ----- tuple
- 元组也可以装不同类型的元素
- 若声明 a = (1) 则不是元组 必须a =(1,) 才可
- 元组只能获取不可以增删改
支持的符号
- +
- *
- is 、not
- in 、 not in
支持的系统函数
- min()
- max()
- sum()
- len()
- sorted() --------------------排序 返回的结果是个列表
- tuple() ---------------------元组的强制类型转换
元组的自带函数
- index() --------查找特定元素的索引
- count()--------返回特定元素的个数
拆包装包
x, *y =(1,2,3,4,5)
print(y) -----打印出 1,[2,3,4,5]
print(*y)-----打印出 2,3,4,5
字典
特点:
- 符号:{}
- 关键字:dict
- 保存的元素是 key:vaule
- key 是唯一的 value可以不唯一
定义:
- dict1 = {} //定义空字典
- dict2 = dict()// 定义空字典 同样 list1 = list() 定义空列表 tuple1 = tuple() 定义空元组
- dict3 = {‘ID’:‘12351235’,‘name’:‘lucy’,‘age’:18}
- dict4 = dict( [ (‘ID’,12351235), (‘age’,18)] )//强制类型转换,必须是列表套列表 列表套元组 元组套元组 元组套列表 而且里面的元素必须成对出现
增删改元素:
- 增加格式:dict[key] = value,如果字典中有了同名的key 则会发生覆盖
dict1 ={}
dict1['name']='lucy' # 在字典中添加一堆键值对
print(dict1)
dict1['name']='bob' # 在这里会用'bob'覆盖原来的'lucy'
print(dict1)
- 字典和列表结合使用:
列表存放字典,每个字典是一个用户信息
print('---------------------欢迎来到智联招聘用户注册--------------------')
database = []
while True:
username = input("请输入用户名:")
password = input('请输入密码:')
re_password = input('请再次输入密码:')
email = input('请输入邮箱:')
phone = input('请输入手机号:')
user = dict()
user['username'] = username
if password == re_password:
user['password'] = password
else:
print('两次密码不一致!请重新输入')
continue
user['email'] = email
user['phone'] = phone
database.append(user)
answer = input('是否继续注册?(y/n)')
if answer.lower() != 'y':
break
print(database)
查找字典的元素
- print(dict1[key]) 若找不到会报错
- get(key) 若找不到返回None
- get(key,dafault) 若找不到返回给定的defalut(默认值)
遍历字典
- 遍历的结果就是字典的key
for i in dict1:
print(i)
字典的函数
- items()
dict1 = {'小明的分数': 56, '小红的分数': 29, '小李的分数': '44'}
print(dict1.items())
#打印的结果是
# dict_items([('小明的分数', 56), ('小红的分数', 29), ('小李的分数', '44')])
- 第二种遍历字典的方法
for key,value in dict1.items():
print(key,value)
- value()
函数的作用是 取出字典的所有值 然后存到列表里 - key()
函数的作用是 取出字典的所有key 然后存到列表里
in 运算符
- 也可以用于字典的操作 用于判断元素有没有在字典的key中出现
字典的删除操作
- 关键字del------------------del dict1[key] 若没有key则报错
- 用内置函数 pop(key)----------删除成功 返回这个键值对的值 删除失败则报错
- pop(key ,default)---------删除成功 返回这个键值对的值,若删除失败则返回default
- popitem() :随机删除字典的键值对,一般是从末尾删除
- clear() 删成空字典
其他的内置函数
- update(dic) 类似列表中的加,把两个字典合并起来,若有重复的键值对则覆盖
-dict.fromkeys(seq,[default]) ----->将seq(列表或者元组之类的)转换成字典的表达方式,如果没有指定默认的value则value为none 如果指定了defalut 则value为defalut
集合
特点
- 无序的不重复的
- 关键字 set
- 创建空集合 s1 = set() 只能使用set()创建 不可以用set ={}
- 如果用大括号创建 set ={1,3,2,5} 这个不是字典而是集合
应用1:去除重复项
list1= [1,1,2,3,3]
set1 = set(list1)
print(set1)
增加操作
- set1.add(value)
- set1.update((1,2,3)) 可以添加多个元素
删除操作
- set1.remove(value) 删除集合中的元素 删除失败会报错
- set1.pop() 随机删除,实际是删除第一个元素
- set1.clear() 全部删除
- set1.discard(value) 类似remove 但删除失败不会报错
练习:给一个空集合增加10个不同的随机数
set1 = set()
while len(set1) < 10:
set1.add(random.randint(0, 20))
print(set1)
支持的运算符
- in not in
- ==
- - 表示差集 也可以使用函数 内置函数difference()
set1 = difference_update(set2) 差集并更新,表示做差集之后再把结过赋值给set1 - & 表示交集 intersection()
- | 表示并集 union()
- ^ 对称差集 symmetric_difference()