组合数据类型——列表,元组,集合,字典__基本解析

组合数据类型——列表,元组,集合,字典

数据类型关键字比较 列表 元组 字典 集合
是否可重复存储
是否可修改
是否有序列

(字典在python3.6之前存储的数据是没有顺序的,3.6及之后的版本,字典存储的数据变得有序。)

列表(list)

列表的特点:有顺序的,可以修改的,可以存放重复的,不同数据类型的多个数据

列表的声明

  1. 声明空列表
    list1 = []
    list2 = list()
    声明空列表有以上两种方式
  2. 声明非空列表
    组合数据类型——列表,元组,集合,字典__基本解析
    列表中的数据是可以不同数据类型的,可以重复的数据。

列表的操作

lst = [“a”]

  • 列表增加数据
    lst.append()在列表末尾追加一个数据
    组合数据类型——列表,元组,集合,字典__基本解析
    lst.extend()在列表末尾追加多个数据,也可以理解为合并两个列表的数据
    组合数据类型——列表,元组,集合,字典__基本解析
    lst.insert(0, “b”)在索引为0的数据前增加一个数据,即指定位置增加数据。
    组合数据类型——列表,元组,集合,字典__基本解析

  • 列表修改数据
    lst[索引] = ‘新数据’,通过索引对原位置数据进行覆盖,完成修改的目的
    组合数据类型——列表,元组,集合,字典__基本解析

  • 列表查询数据
    lst[索引] 通过索引查找指定位置的数据
    lst.sort()将列表数据从小到大排列,注意列表中的数据必须是可以相互之间进行比较的数据;

    [注意]: sorted() 和 sort() 的区别: 1. sort()是应用在 list 上的函数, 而 sorted()可以对所有的可迭代对象进行操作 2. list 的 sort 方法是作用在原列表上, 无返回值;内建函数 sorted 是将排序后的结果 返回一个新的 list,原 list 不发生改变

    lst.reverse()将数据从大到小排列。
    使用for循环遍历整个列表数据
    组合数据类型——列表,元组,集合,字典__基本解析
    lst.count(数据)查询列表中数据出现的次数
    lst.index(数据)查询列表中数据第一次出现的位置;但是超出列表末尾之外的索引总是会导致错误,对列表末尾范围之外赋值也是如此

  • 列表删除数据
    lst.pop()默认删除提取列表最后的一个数据
    lst.remove()指定删除数据
    del lst[]使用python命令删除列表数据
    组合数据类型——列表,元组,集合,字典__基本解析

  • 列表的其他操作:
    lst = [1, 2, 3, 4, 5]
    max(lst) 获取列表最大值
    min(lst)获取列表最小值
    sum(lst)列表中的数据求和
    以上三种列表的数据都必须是数值型数据。

元组(tuple)

元组的特点:有顺序的,不可修改的,可以存放重复的,不同数据类型的多个数据

元素的声明

声明空元组
t = tuple()  推荐,可读性高
t = ()    不推荐,容易混淆

声明一个元素的元组
t = tuple([“a”])  推荐
t = (“a”,)  不推荐
在声明一个元素的元组时不可以忽略逗号。

声明多个元素的元组
t = tuple([“a”, “b”, “c”])  不推荐,繁琐
t = (“a”, “b”, “c”)  推荐
组合数据类型——列表,元组,集合,字典__基本解析

元组的操作

因为元组时不可修改的数据类型,所以元组只有删除整个元组和查询的操作

  • 元组的查询
    元组的查询和列表的一样
    t = (“a”, “b”, “c”)
    t[索引]  通过索引进行数据查询
    t[起始位置:结束位置:步长]   元组通过切片完成数据查询
    通过for循环完成对列表数据的查询
    for i in t:
     print(i)
    组合数据类型——列表,元组,集合,字典__基本解析
    t.count(数据) 获取元组中数据的个数
    t.index(数据) 获取元组中数据第一次出现的位置

字典(dict)

字典的特点:没有顺序的,可修改的,键不可以重复,值可以重复,值可以是不同数据类型的多个数据

字典的声明

声明空列表
d = {}
d = dict()
声明非空列表
d = {“key”: “value”, “name”: “张三”} 推荐,直观易懂
d = dict([(“key”, “value”), (“name”, “张三”)]) 不推荐,繁琐
d = dict(key=“value”, name=“张三”) 还行,比较简单
组合数据类型——列表,元组,集合,字典__基本解析

字典的操作

增加键值对操作

方法 描述
变量名[key]=value 通过 key 添加 value 值,如果 key 存在则覆盖
setdefault(key,default_value) 指定 key 和 value,如果 key 存在则不覆盖

删除操作

方法 描述
pop 弹出,返回并删除指定键对应的值 dict.pop(‘key’)
popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
clear 清空字典
del 删除整个字典,或者通过字典的 key 删除对应键值对;Python 内置方法,不是字典独有 的方法

修改操作

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

查询操作

方法 描述
根据 key 查找 通过制定的 key 找对应的值 dict[‘key’]
keys() 包含字典所有 key 的 dict_keys 对象,该对象可以转换为列表
values () 包含字典所有的 value 的 dict_keys 对象,该对象可以转换为列表
get() 以键取值,如果指定键不存在,默认返回 None,可以指定返回内容
update() 以字典格式更新指定键的内容,如果键不存在,创建键和值
items() 返回字典键值呈元组形式的格式
len() 测量字典,键值对的个数(整体)

集合(set)

集合的特点:没有顺序的,可修改的,不可以重复的,可以是不同数据类型的多个数据

集合的声明

声明空集合
s = set()
声明非空集合
(1). 变量名={元素 1,元素 2,元素 3,…}
(2). 变量名=set(序列) 例如 变量名=set(元组,自动,字符串)

集合的操作

增加元素操作

方法 描述
add() s.add(元素)
update() s.update({元素4, 元素5})

组合数据类型——列表,元组,集合,字典__基本解析
删除元素操作

方法 描述
pop() s.pop()随机删除一个元素
remove() s.remove(元素4)指定删除一个元素
clear() s.clear()清空集合
def s 删除集合

组合数据类型——列表,元组,集合,字典__基本解析

遍历集合操作

方法 描述
for i in s:
 print(i)
通过for循环遍历集合所有数据

组合数据类型——列表,元组,集合,字典__基本解析
集合的其他操作

方法 描述
‘discard’ 删除一个指定的数据,如果数据不存在什么都不做
‘isdisjoint’ 判断元素是否在集合中
‘issubset’ s1 集合中的数据是不是包含在 s2 集合中,等价于 s1 < s2
‘issuperset’ s1 集合是不是包含了 s2 集合中你的数据,等价于 s1 > s2
‘difference’ 获取 s1 集合和 s2 集合的差集
‘difference_update’ 获取 s1 和 s2 的差集并将结果数据更新前集合中
‘intersection’ 获取 s1 集合和 s2 集合的交集
‘intersection_update’ 获取 s1 和 s2 的交集并将结果更新到前集合中
‘symmetric_difference’ 获取 s1 和 s2 共同的差集
‘symmetric_difference_update’ 获取共同的差集并更新到 前集合中
‘union’ 获取 s1 和 s2 的并集
‘update’ 获取 s1 和 s2 的并集,并将数据更新给 s1