列表和元组在这里看:
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
群名:人生苦短,我学编程
欢迎大家加入我们,一起交流技术!!!