python数据类型2

三.2数据类型——无序列

P.5数据类型——集合

由{}包裹,无序的不重复的元素组成,分为可变集合和不可变集合,自带有去重功能(去除重复元素)

P.5.1可变集合

可变集合的元素定义好后不可被修改,但集合本身可以增加、删除元素

元素类型只能是数字、字符串、元组

格式:

集合名 = {元素1, 元素2, ......}

s1 = {2, 5, 2, 3, "hi", "hqyj", (22, 33, 88)}
print(s1)
print(type(s1))            # 该输出是<class 'set'>
s1 = {}
print(type(s2))            # 无内容的话输出的是<class 'dict'>
# 去重
l1 = [2, 8, 5, 6, 8, 8]
print(list(set(l1)))       # 将列表强转成集合,再转回列表
P.5.1.1可变集合的增加
add()添加一个元素
update()添加多个元素
s1 = {2, 5, 2, 3, "hi", 2, "hqyj", (22, 66, 99)}
s1.add(888)                            # 添加元素888
s1.update({11, 222, "haha"})           # 只能增加一个元素,(而将多个元素放在同一个列表(或集合、元组)中也可以进行添加)
print(s1)
P.5.1.2可变元素的删除
remove()删除指定元素 指定元素不存在会报错
discard()删除指定元素 指定元素不存在不会报错,相当于无效代码
pop()删除第一个元素 默认删除第一个元素,无任何参数
s1 = {2, 5, 2, 3, "hi", 2, "hqyj", (22, 66, 99)}
# s1.remove(3)
# s1.discard("hi")
s1.pop()
print(s1)
# 打印结果:{3, (22, 66, 99), 5, 'hi', 'hqyj'}
P.5.1.3可变元素的查找

关键字        in        查找某个元素是否存在(not in作用相反)

s1 = {2, 5, 2, 3, "hi", 2, "hqyj", (22, 66, 99)}
print("hqyj" in s1)            # 结果打印True
P5.1.4其他函数
set.len()计算元素个数
set.set()生成一个集合
set.copy()拷贝
set.clear()清空集合元素
set.del()清空集合
set.intersection()求交集
set.union()求并集

set.issubset()求子集set是否为是s1的子集(结果返回True或False,下同)
set.issuperset()反求子集s1是否为set的子集/set是否包含s1的所有元素
s1 = {2, 5, 2, 3, "hi", 2, "hqyj", (22, 66, 99)}
s2 = {2, 333, 5, 666, "hi"}
s3 = {2, 5}
# 交集
print(s1.intersection(s2))
# 并集
print(s1.union(s2))
# s3是s2的子集
print(s3.issubset(s2))
# s2中是否包含s3的所有元素
print(s2.issuperset(s3))

P.5.2不可变集合

元素不可变,元素个数也不可变

s1 = frozenset({"hello", "lalala"})        # 集合元素不可变
print(s1)
print(type(s1))                            # 打印结果为<class 'frozenset'>

P.6数据类型——字典

由{}包裹,无序可修改,元素以键值对的形式存在

格式:

        字典名 = {键1: 值1, 键2: 值2......}

d1 = {"name": "hqyj", "sex": "m", "class": 25061}
print(d1)
print(type(d1))

也可以用函数去生成字典

dict.fromkeys(iterable, value)

iterable(键)         是一个序列(里面存放的是键)

value(值)            只是一个值(里面存放的默认值为None),前面序列有几个键,这几个键的值都是该value值

# dict.fromkeys(iterable, value)
#     iterable序列,里边存放键
#  value值,默认值None
# d2 = dict.fromkeys([1, 2, 3])
d2 = dict.fromkeys([1, 2, 3], 999)
print(d2)
print(type(d2))
# 打印结果为:{1: 999, 2: 999, 3: 999}

P.6.1键值对特点

键是唯一的,键和值一一对应

键只能是数字、字符串、元组,不能是列表(键名唯一)

值可以是任意类型

d1 = {"name": "hqyj", "sex": "m", "class": 25061, "friend": "zs", "f_class": 25061}
print(d1)
print(type(d1))

P.6.2字典的访问

字典名[键名]

d1 = {"name": "hqyj", "sex": "m", "class": 25061, "friend": "zs", "f_class": 25061}
print(d1["class"])
# 打印结果:25061

P.6.3字典的相关函数

P.6.3.1键值对的添加

直接添加:字典名[键名] = 值

# 字典名[键名] = 值,如果d1中没有该键名,则自动添加,若有输入的键名,则去修改键名对应的元素

d1 = {"name": "hqyj", "sex": "m", "class": 25061, "friend": "zs", "f_class": 25061}
d1["fff"] = "ls"
print(d1)
d1["sex"] = "man"
print(d1)
# 打印结果:{'name': 'hqyj', 'sex': 'man', 'class': 25061, 'friend': 'zs', 'f_class': 25061, 'fff': 'ls'}
P.6.3.2键值对的删除

pop(参数)

popitem()

参数:键名

3.7版本之前:随机删除

现在版本:删除最后一个

clear()

删除所有元素

del关键字

删除字典

d1 = {"name": "hqyj", "sex": "m", "class": 25061}
# d1.pop("sex")            删除指定键名所对应的键值对
# d1.popitem()             随机删除或删除最后一个元素(看版本)
# d1.clear()               清楚所有元素
# del d1                   删除该字典
print(d1)
# 报错,因为此时字典d1已经在内存中被删除了
P.6.3.3键值对的修改

直接修改:修改单个元素

        字典名[键名] = 新的值

update()修改多个值

d1 = {"name": "hqyj", "sex": "m", "class": 25061}
d1["class"] = 61            # 单个元素修改
d1.update({"name": "詹姆斯", "sex": "man", "color": "black"})
# 多个元素修改,若原字典无该键值对,则将其添加进去
print(d1)
P.6.3.4键值对的查询

直接键名查询

get()如果键名不存在,则返回自定义的提示语,默认None

in 或 not in

d1 = {"name": "hqyj", "sex": "m", "class": 25061}
# print(d1.get("name"))
# print(d1.get("nameqwe"))        返回值为None
print(d1.get("name", "不存在"))    
# 如果name存在,返回对应的值,如果name不存在,且无第二个参数,则默认返回None,如果给到第二个参数,且d1中无name,则返回给到的第二个参数。
print(d1)

setdefault()如果键值对不存在,会创建一个键值对

d1 = {"name": "hqyj", "sex": "m", "class": 25061}
d1.update({"name": "詹姆斯", "sex": "man"})
print(d1.setdefault("name"))
print(d1.setdefault("color", "black"))
# 该键值对不存在,直接在d1字典中添加一个新的键值对
print(d1)
P.6.3.5其他函数

len()

计算键值对的个数

copy()

拷贝

keys()

返回字典中所有的key值

values()

返回字典中所有的value值

items()

返回字典中所有的键值对

按键值对拆成元组的形式返回

d1 = {"name": "nlj", "sex": "m", "class": 25061}
d1.update({"name": "詹姆斯", "sex": "man"})
print(d1.keys())           # 返回d1中所有的键名,以列表的形式输出
print(d1.values())         # 返回d1中所有的值,以列表的形式输出
print(d1.items())          # 返回d1中所有的键值对,以元组的形式输出
print(d1)

更多内容请看——>python1_Gu_shiwww的博客-CSDN博客

下一篇跳转链接:python函数-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值