python 中的字典和集合

3一、字典——Python中的==查询==神器

1、为什么需要字典(dict)

思考1:比如我们要存储一个人的信息,姓名:Tom,年龄:20周岁,性别:男,家庭住址:北京市昌平区,如何快速存储。

person = ['Tom', 20, '男', '北京市昌平区']

思考2:在日常生活中,姓名、年龄以及性别同属于一个人的基本特征。但是如果使用列表对其进行存储,则分散为3个元素,这显然不合逻辑。我们有没有办法,将其保存在同一个元素中,姓名、年龄以及性别都作为这个元素的3个属性。

答:使用Python中的字典

2、Python中字典(dict)的概念

特点:

z① 符号为==大括号==(花括号) => {}

② 数据为==键值对==形式出现 => {key:value},key:键名,value:值,在同一个字典中,key必须是唯一(类似于索引下标)

③ 各个键值对之间用==逗号==隔开

3、字典的增操作(重点)

这里直接用代码展示出来

# 定义空字典
dict1 = {}
dict2 = {'name': '鲁班', 'age': 10, 'sex': '男'}
print(dict2)
print('---------------------------------------------------')

# 向字典中添加数据
print('向字典中添加数据')
dict1['name'] = '张三'
dict1['age'] = 18
dict1['sex'] = '男'
print(f'添加好的数据{dict1}')
print('---------------------------------------------------')

print(f'添加前的数据{dict2}')
dict2['name1'] = '张三'
dict2['age1'] = 18
dict2['sex1'] = '男'
print(f'添加后的数据{dict2}')
print('---------------------------------------------------')

# 向字典中删除数据
print('向字典中删除数据')
print(f'删除前的数据{dict2}')
del dict2['name']
del dict2['age']
del dict2['sex']
print(f'删除后的数据{dict2}')
print('---------------------------------------------------')

# 修改字典中的数据,必须是已经存在的key
print('修改字典中的数据')
print(f'修改之前的字典数据{dict1}')
dict1['name'] = '小美'
dict1['age'] = 15
dict1['sex'] = '女'
print(f'修改之后的字典数据{dict1}')

'''
1 keys()以类列表返回一个字典所有的键
2 values()以类列表返回字典中的所有值
3 items()以类列表返回可遍历的(键, 值) 元组数据
'''
print('---------------------------------------------------')
print(dict1.keys())
print(dict1.values())
print(dict1.items())

print('---------------------------------------------------')
print(dict2.keys())
print(dict2.values())
print(dict2.items())
print('---------------------------------------------------')

# 字典的遍历
print('字典的遍历')
for key, value in dict1.items():
    print(f'{key}:{value}')
print('---------------------------------------------------')

for key, value in dict2.items():
    print(f'{key}:{value}')
print('---------------------------------------------------')

student = []
student1 = {'name': '小帅', 'age': 22, 'sex': '男'}
student2 = {'name': '小美', 'age': 24, 'sex': '女'}
# 将字典student1添加到列表student中
student.append(student1)
# 将字典student2添加到列表student中
student.append(student2)
print(student)
print('---------------------------------------------------')

list1=[{'name': '小帅', 'age': 22, 'sex': '男'}, {'name': '小美', 'age': 24, 'sex': '女'}]
name=input('请输入要删除的人名称:')
for i in  list1:
    if i['name']==name:
        list1.remove(i)
        print(list1)
        print('删除成功')
        break
else:
    print('未找到')




二、集合——天生去重

1、什么是集合

集合(set)是一个无序的不重复元素序列。

① 天生去重

② 无序

2、集合的定义

在Python中,我们可以使用一对花括号{}或者set()方法来定义集合,但是如果你定义的集合是一个空集合,则只能使用set()方法。

这里直接用代码展示出来

'''
Python中,集合具备一个特点:天生去重,官方定义:集合是一个无序且不重复的数据集合。
① 集合里面的数据没有顺序
② 集合中的数据是不重复的
在Python中,我们可以通过{}或者set()方法来实现集合的定义。
问题:字典也是通过{}大括号,集合也是通过{}大括号,如何区分我们的定义的是一个字典还是一个集合呢?
答:主要看里面的数据结构,如果{}中存放的是键值对,则代表是一个字典类型的数据;如果大括号中是具体的值,则代表其是一个集合类型的数据。
注:空集合只能通过set()方法来进行实现,{}定义的默认是空字典。
'''
#定义一个空集合
set1=set()
print(type(set1))  #<class 'set'>
print('-------------------------------')

#定义有数据的集合
#集合输出是没有顺序的
set2={10,20,30,50,40}
print(set2)
print('-------------------------------')

#set()方法也可以把其他类型的数据转换为集合,如字符串
set3=set('abcefg')
print(type(set3))  #<class 'set'>
print(set3)
print('-------------------------------')

#集合中元素的访问:由于集合中的数据没有顺序,所以其没有索引下标,数据的访问有两种方案
#1.直接打印
print(set2)
#2.使用for循环遍历(只能使用for循环遍历)
for i in set2:
    print(i)
print('-------------------------------')

'''
增加方法:add(),主要用于向集合中添加数据
删除方法:remove(),根据值删除指定的元素
        pop(),随机删除集合中的某个元素,删除后,pop()方法返回被删除的那个元素
查询方法:if 元素 in 集合,判断元素是否出现在集合中,出现True,反之,则返回False
'''
#增加方法:add(),主要用于向集合中添加数据
set5=set()
set5.add('张三')
set5.add('李四')
set5.add('王五')
set5.add('小帅')
set5.add('小美')
print(set5)
print('-------------------------------')

#删除方法:remove(),根据值删除指定的元素
set5.remove('张三')
print(set5)
print('-------------------------------')

#pop(),随机删除集合中的某个元素,删除后,pop()方法返回被删除的那个元素
set5.pop()
print(set5)
print('-------------------------------')

#查询方法:if 元素 in 集合,判断元素是否出现在集合中,出现True,反之,则返回False
set6={'小帅', '小美', '李四'}
if '小美' in set6:
    print('在')
else:
    print('不在')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值