字典和集合 2

大数据19-3 01 王亚东

字典和集合

1. 字典(dict)

字典(dict,全称: dictionary )是python内置的一种使用“键值对结构”存储数据的存储模型。在其它语言中也称为map或者是object(对象)

特点

一、字典不具备索引的概念,但可以通过字典的键key操作字典中存储的数据值value
二、字典(dict)内部存放的顺序和键key放入的顺序是没有关系的。
三、字典可以根据键(key)进行数据的添加、删除、修改、查询等操作
四、字典通过键(key)计算位置的算法称为哈希算法(Hash)
五、 要保证hash的正确性, 作为key的对象就不能变。 在Python中, 字符串、整数等不可变类型的数据可作为 字典的键
六、字典的key是唯一的且必须是不可变的类型(对象), 如纯元素可以作为字典的key

语法

有数据字典:dic1  = {'name':'tom','age':'10','gender':'男'}
无数据字典:dic2 = {};dic3 = dict()

字典的常见操作:

字典是可变数据类型
增,改:
1)、增:字典序列[key] = 值;如果key存在则修改key对应的值,否则新增键值对
2)、删:
del(字典序列):删除字典
# del(dic1)
# print(dic1)#报错
# del 字典序列[key]:删除指定键值对,如果不存在ley报错
del dic1[‘name’]
print(dic1)#{‘age’: ‘10’, ‘gender’: ‘男’, ‘id’: 110}
# 字典序列.clear():清空字典
dic1.clear()
print(dic1)#{}
3)、查
dic1 = {‘name’:‘tom’,‘age’:‘10’,‘gender’:‘男’}
l 指定key查找
print(dic1[‘name’])#hgs
l 函数查找
# 字典序列.get(key):如果当前查找的key存在则返回 值,如果没有默认值则返回None
dicxx = {‘name’:‘tom’,‘age’:‘10’,‘gender’:‘男’}
print(dicxx.get(‘name’))#tom
print(dicxx.get(‘names’))#None
# 字典序列.keys():查找字典中的键
print(dicxx.keys())#dict_keys([‘name’, ‘age’, ‘gender’])
# 字典序列.values():查找字典中的键值
print(dicxx.values())#dict_values([‘tom’, ‘10’, ‘男’])
# 字典序列.items():查找字典中的元素
print(dicxx.items())#dict_items([(‘name’, ‘tom’), (‘age’, ‘10’), (‘gender’, ‘男’)])
4、字典中的循环
dict1 = {‘name’:‘tom’,‘age’:20,‘gender’:‘男’}
1)、# 遍历字典的key
for key in dict1.keys():
print(key)
2)、# 遍历字典的value
for value in dict1.values():
print(value)
3)、# 遍历字典的元素(items)
for item in dict1.items():
print(item)

2.集合

1、特点:集合具有去重功能、不支持下标、无序、集合为可变数据类型
2、创建集合
              1)、# 创建有数据的集合,
              s1 = {10 ,20,30,40,50}
                     print(s1)#{40, 10, 50, 20, 30}
                      s2 = {10 ,20,30,40,50,20,30,40,50}
                      print(s2)#{40, 10, 50, 20, 30}
                      s3 = set('abcdefg')
                      print(s3)#{'f', 'c', 'd', 'g', 'b', 'a', 'e'}
              2)、# 创建空集合只能用set()创建
              s4 = set()
                     print(type(s4))#<class 'set'>
                      s5 = {}
                      print(type(5))#<class 'int'>

3、# 集合常见操作方法
s6 = {?,?}
1)、# 增加数据
# 集合.add():增加单一数据,如果增加多个则报错,如果重复,则什么也不做
s6.add(100)
print(s6)#{10, 100, 103}
# 集合.update():增加的数据是序列,不能增加单一数据
s6.update([15,50,60])
print(s6)#{100, 103, 10, 15, 50, 60}
2)、# 删除
s7 = {10,50,90,70}
# 集合.remove(指定数据):删除指定数据,如果不存在则报错
s7.remove(10)
print(s7)#{50, 90, 70}
# 集合.discard(指定数据):删除指定数据,如果不存在则不报错,什么也不做
s7.discard(50)
print(s7)#{90, 70}
s7.discard(50)
print(s7)#{90, 70}
# 集合.pop():随即删除数据,返回这个数据
s7.pop()
print(s7)#{70}

总结:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值