python中的复杂数据类型详解(下)

文章目录


列表和元组在这里看:
python中的复杂数据类型详解(上)列表与字典

创建复杂数据类型的各种姿势
创建列表的四式
创建元组的两招
创建字典的五式
创建集合的三招

字典

1.字典定义的格式
变量名={“健”:“值”,“健”:“值”,…}
举个例子

dic={"name":"张三","age":18,"address":"上海"}
print(dic)
print(type(dic))

'''
运行结果:
{'name': '张三', 'age': 18, 'address': '上海'}
<class 'dict'>
'''

2.字典持有的操作与特性
那么可以对字典执行哪些操作呢?
可遍历,可删除,可更改等
字典具有哪些特性呢?
python3.6之前是无序,python3.6之后是有序,健不可重复等
注意:Python 3.6 改写了 dict 的内部算法,因此 3.6 的 dict 是有序的,在此版本之前皆是无序
举个例子

dic={"name":"张三","age":18,"address":"上海"}
print("-"*20)

#遍历元素
for i,j in dic.items():
    print(i,j)
print("-"*20)

#更改元素
dic["name"]="李四"
print(dic)
print("-"*20)

#添加元素
dic["phone"]="456789"
print(dic)

'''
运行结果:
--------------------
name 张三
age 18
address 上海
--------------------
{'name': '李四', 'age': 18, 'address': '上海'}
--------------------
{'name': '李四', 'age': 18, 'address': '上海', 'phone': '456789'}
'''

3.字典中的方法
(1)增加操作

方法 描述
变量名[key]=value 通过key 添加value值,如果key存在则覆盖
setdefault(key,default_value) 指定key和value,如果key存在则覆盖
#添加健值
dic={"name":"张三","age":18,"address":"上海"}
dic["number"]="14728398392"
print(dic)
print("-"*20)

#更改健的值
dic.setdefault("name","李四")
print(dic)

'''
运行结果:

{'name': '张三', 'age': 18, 'address': '上海', 'number': '14728398392'}
--------------------
{'name': '张三', 'age': 18, 'address': '上海', 'number': '14728398392'}
'''

(2)删除操作

方法 描述
pop 弹出,返回并删除指定键对应的值
popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
clear 清空字典
dic={"name":"张三","age":18,"address":"上海"}

#删除指定健的值
dic.pop("name")
print(dic)
print("-"*20)

#随机弹出字典中的一个健值元组
print(dic.popitem())
print("-"*20)

#清空字典
dic.clear()
print(dic)

'''
运行结果:

{'age': 18, 'address': '上海'}
--------------------
('address', '上海')
--------------------
{}
'''

(3)修改操作

方法 描述
变量名[key]=value 通过key 添加value值,如果key存在则覆盖
update() 传递一个字典,如果key相同则覆盖,没有的k

dic1={"name":"张三","age":18,"address":"上海"}
dic2={"phone":"123456","school":"中学"}

#将两个字典合并,如果健重复则覆盖
dic1.update(dic2)
print(dic1)

'''

运行结果:
{'name': '张三', 'age': 18, 'address': '上海', 'phone': '123456', 'school': '中学'}
'''

(4)查找操作

方法 描述
keys 返回一个包含字典所有key的列表
values 返回一个包含字典所有vaule的列表
get 以键取值,如果指定键不存在,默认返回None,可以指定返回内容
update 以字典格式更新指定键的内容,如果键不存在,创建键和值
items 返回字典键值呈元组形式的格式
len 测量字典,键值对的个数(整体)
dic1={"name":"张三","age":18,"address":"上海"}

#返回一个包含字典所有key的列表
print(dic1.keys())
print("-"*20)

#返回一个包含字典所有value的列表
print(dic1.values())
print("-"*20)

#以健取值,健不存在返回none
print(dic1.get("name"))
print("-"*20)

#返回字典健值呈元组的格式
print(dic1.items())
print("-"*20)

#返回字典长度
print(len(dic1))

'''
运行结果:

dict_keys(['name', 'age', 'address'])
--------------------
dict_values(['张三', 18, '上海'])
--------------------
张三
--------------------
dict_items([('name', '张三'), ('age', 18), ('address', '上海')])
--------------------
3
'''

集合

1.集合的定义格式
示例:

set={1,2,3,4,5,6,7}
print(set)
print(type(set))

'''
运行结果:

{1, 2, 3, 4, 5, 6, 7}
<class 'set'>
'''

2集合持有的操作与特性
那么可以对集合执行哪些操作呢?
可遍历,可添加,可删除
字典具有哪些特性呢?
无序性,不可重复,可更改
示例:

(1)添加操作

set1={"哈哈","嘻嘻","呵呵"}
set2={"name","age","address"}

set1.add("呵呵")
print(set1)
print("-"*20)

set1.update(set2)
print(set1)

'''
运行结果:

{'嘻嘻', '哈哈', '呵呵'}
--------------------
{'age', '嘻嘻', 'address', '哈哈', '呵呵', 'name'}
'''

(2)删除操作

set={"哈哈","嘻嘻","呵呵"}

#随机删除一个
set.pop()
print(set)
print("-"*20)

#删除指定的元素
set.remove("嘻嘻")
print(set)
print("-"*20)

#清空集合
set.clear()
print(set)
print("-"*20)

#删除集合
del set
'''
运行结果:

{'嘻嘻', '呵呵'}
--------------------
{'呵呵'}
--------------------
set()
--------------------
'''

(3)遍历集合

#遍历集合
set={"哈哈","嘻嘻","呵呵"}
for i in set:
    print(i)
'''
运行结果:

呵呵
哈哈
嘻嘻
'''


3.集合数学运算

名称 方法 描述
交集 intersection 取公共部分
并集 union 取去除重复部分内容
差集 difference 取两个集合中除去公共部分的内容
反交集 sysmmetric_difference 除了交集的部分
子集 issubset 判断是不是子集
超集 issuperset 判断是不是超集

示例:

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,8}

#交集
print(set1 & set2)
print(set1.intersection(set2))
print("-"*20)

#并集
print(set1 | set2)
print(set1.union(set2))
print("-"*20)

#差集
print(set1-set2)
print(set1.difference(set2))
print("-"*20)

#反交集
print(set1^set2)
print(set1.symmetric_difference(set2))
print("-"*20)

#子集
print(set1<set2)
print(set1.issubset(set2))
print("-"*20)

#超集
print(set1>set2)
print(set1.issuperset(set2))

'''
运行结果:


{3, 4, 5, 6}
{3, 4, 5, 6}
--------------------
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
--------------------
{1, 2}
{1, 2}
--------------------
{1, 2, 7, 8}
{1, 2, 7, 8}
--------------------
False
False
--------------------
False
False
'''

来一波,推送吧!
群号:781121386
群名:人生苦短,我学编程
欢迎大家加入我们,一起交流技术!!!

发布了38 篇原创文章 · 获赞 128 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lujiangyang123/article/details/103517576
今日推荐