Python基础(五)元组、字典和集合

元组

  • 符号 : (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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值