集合与字典

字典

字典是一种基础元素为“键-值对”,无序可变,可嵌套可迭代的数据结构。

  • 基础元素是键-值对,通过键名而不是索引号来索引访问值
  • 字典中的元素是无序的,意味着无法通过索引来访问
  • 字典是可变的,元素可以增删改
  • 可以任意嵌套,支持自动解包
  • 键必须唯一,且必须是不可变类型,如字符串,数字,元组
  • 值可以是任何类型,而且值可以重复
1 字典的创建方式
    1.1 直接使用"{}"
    1.2 使用dict()
#模拟数据库
database=[]
flag = 0
while True:
    if(flag>5):
        break
    username = input("输入用户名:")
    password = input("输入密码:")
    email = input("输入邮箱")
    #定义一个字典
    user = {}

    #将信息保存在字典
    user['username'] = username
    user['password'] = password
    user['email'] = email

    #保存到数据库
    database.append(user)
    flag+=1
print(database)

方法:

#查询元素
"""
1,根据key获取值,如果key在字典中没有存在则报出keyerror
    dict[key] = value
2,字典内置函数:
 get(key)  ----->value  如果取不到值则不会报错,返回none
 get(key,default) -----》value  如果能够取到值则返回字典中的值,如果取不到则返回default 的值

items()
keys()
values()
"""
dict2 = {'张三':88,'李斯':22,'王五':97,'赵六':34,'篱笆':96}
    #考试分数大于90分的人
    #尝试对字典进行遍历
for k in dict2: #对字典遍历的结果是:只取出字典的key
    print(k)
#字典里的函数:items(),values(),keys()
print(len(dict2))
print(dict2.items())
print(dict2.values())#取出字典所有值,保存到列表
print(dict2.keys()) # 取出字典所有键,保存到列表
for i in dict2.items():
    print(i)
for key,value in dict2.items():
    if(value>90):
        print(key)
#找人: in  判断元素有没有在字典中的key中出现
if '王五' in dict2:
    print('yes')
else:
    print("no")


print(dict2.get("赵飞")) #与直接用键查找相比他找不到不会报错,且可以设置默认值
print(dict2.get("王五",99))
print(dict2.get("李四",99))
#删除
"""
1,del
2,字典里的内置函数:
pop(key,default)  根据key删除字典中的键值对 返回值是 只要删除成功,则返回键值对的值value
                            pop的默认值,往往是在删除的时候没有找到对应的key,则返回default默认值
popitem()
clear()
"""
#del dict2['王'] #keyerror
dict2.pop('李斯',80)
print(dict2.pop('李斯',11))
print(dict2)
result = dict2.popitem() #随机删除字典中键值对,一般从末尾删除
print(result)
print(dict2)
字典中没有下标一说
key在字典中是唯一的
#字典的增删改查

增加元素对比:
list1 = []
list1.append(element)

dict1 ={}
dict1[key] = value

修改:
list1[index] = newvalue
dict1[key] = newvalue

查询:
list[index]  ----->element
dict1[key] ----->value

删除:
del list[index]
del dict[key]

dict1 = {} #空字典
dict2 = dict() #空字典
dict3 = {"ID":1213}
dict4 = dict([('name','lucy'),('id',133)]) #列表依靠元组强转字典(列表中元素一定要符号键值对形式)
print(dict4)#list可以转成字典,但是前提:列表中的元素都要成对出现
#增
dict6 ={}#格式:dict6[key] = value;,同名key放入只会替换原来value
dict6['brand'] = 'huawei'
dict6['type'] = 'p30'
dict6['price'] = 9000
dict6['color'] = 'black'
print(dict6)
其他内置函数:
update() #字典不支持+操作,所以用内置函数[]+[] 合并
formkeys(seq,default)  ----->将seq转成字典形式,如果没有指定默认的value则用none
                ---->如果指定default 则用default代替

集合 

集合是数学中最基本的概念之一,指定义明确的不同对象的聚集。集合的基本操作包括交集,并集,补集等。集合类是无序且没有重复元素,可变,可迭代的数据类型。

  • 集合无序,没有重复元素,对象可变,可迭代
  • 集合只能接受不可变对象作为其元素
  • 集合常用于高效找出两个数据集中的共同点和差异点
创建空集合:s1=set(),空{}表示字典
集合添加元素的方法:
1,add()
    往集合中添加元素 数字/字符串/元组
2,update()
    可以将集合合并
    
集合删除元素的方法:
1,remove
    使用remove删除集合中的函数,如果有直接删除,如果没有程序报错
2,pop
    使用pop 删除是随机删除集合中的元素 如果集合没有元素程序报错
3,discard
    使用discard 删除集合中的函数,如果有直接删除,如果没有不做任何操作
#添加一个元素
s3.add('33')
s3.add(0)
print(s3)#无序

#update()
t1 = ("凌志玲",'88')
s3.add(t1)
print(s3) #add当整体添加,只添加一个元素
s3.update(t1)#可以添加多个元素
print(s3)

#删除  remove pop discard clear
s3.remove('88') #如果元素存在就删除,如果不存在就报错
s3.pop() #随机删除,一般删除第一个
s3.discard('1') #类似remove 但是不存在不报错
print(s3)
#其他: 符号操作
print(6 in s3)
#print(s2+s3) 不支持+,*
print(s3-arr) #差集 支持-,也可以用difference()
print(s3&arr) #交集 支持& 也可以用intersection()
print(s3|arr) #并集 支持|
1,交集:
使用"&"符号连接多个集合,得到相同的元素
2并集
使用"|"符号连接多个集合得到集合中的全部元素
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值