组合数据类型
- 一、集合类型(Set)
- 1.去重功能
- 2.集合运算
- 3.集合内置方法
- 二、序列类型
- 1.列表类型(List)
- 1.1 访问列表
- 1.2 列表内置方法
- 2.元组类型(Tuple)
- 2.1 创建元组
- 2.2 访问元组
- 2.3 元组不可变
- 三、字典类型(Dictionary)
- 1. 创建字典
- 2.访问字典
- 3.修改字典
- 4.字典内置方法
本文主要想整理一些python常用的组合数据类型的方法。资料主要来源于菜鸟教程。
一、集合类型(Set)
- 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。
- 创建方法:可以使用大括号
{ }
或者set()
函数创建集合,如创建的是空集合不能用{ }
。
1.去重功能
s1 = 'ppppython18'
print(set(s1))
输出如下
{'n', '8', 'p', '1', 't', 'y', 'o', 'h'}
2.集合运算
s1 = 'ppppython18'
s2 = '180'
# 差集
print(set(s1) - set(s2))
# 并集
print(set(s1 ) | set(s2 ))
# 交集
print(set(s1) & set(s2))
# 异或集,不同时包含于sample1和sample2的元素
print(set(s1) ^ set(s2))
{'t', 'o', 'n', 'p', 'y', 'h'}
{'0', 'o', 't', 'n', 'p', 'y', '8', '1', 'h'}
{'1', '8'}
{'0', 't', 'o', 'n', 'p', 'y', 'h'}
3.集合内置方法
方法/语法 | 描述 |
| 为集合添加元素 |
| 移除集合中的所有元素 |
| 拷贝一个集合 |
| 返回多个集合的差集 |
| 移除集合中的元素,该元素在指定的集合也存在。 |
| 删除集合中指定的元素 |
| 返回集合的交集,是返回一个新的集合 |
| 返回集合的交集,是在原始的集合上移除不重叠的元素。 |
| 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
| 判断指定集合是否为该方法参数集合的子集。 |
| 判断该方法的参数集合是否为指定集合的子集 |
| 随机移除元素 |
| 移除指定元素 |
| 返回两个集合中不重复的元素集合。 |
| 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
| 返回两个集合的并集 |
| 给集合添加元素 |
二、序列类型
1.列表类型(List)
- 列表(List)是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- 列表是写在方括号
[]
之间、用逗号,
分隔开的元素列表。
1.1 访问列表
使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符。其中,索引值以 0 为开始值,-1 为从末尾的开始位置。
l1 = ['python', 12, 0]
print(l1[0])
print(l1[1:])
python
[12, 0]
1.2 列表内置方法
方法/语法 | 描述 |
| 在列表末尾添加新的对象 |
| 统计某个元素在列表中出现的次数 |
| 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
| 从列表中找出某个值第一个匹配项的索引位置 |
| 将对象插入列表 |
| 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
| 移除列表中某个值的第一个匹配项 |
| 反向列表中元素 |
| 对原列表进行排序 |
| 清空列表 |
| 复制列表 |
2.元组类型(Tuple)
- 元组(tuple)与列表类似,但是元组的元素不允许修改。
- 元组写在小括号
()
里,元素之间用逗号,
隔开。 - 元组中的元素类型也可以不相同。
2.1 创建元组
tup1 = ('python', 12, 0)
tup2 = "p", "y", "t", "h", "o", "n" # 可以不需要括号
tup3 = (180,) # 元组中只包含一个元素时,需要在元素后面添加逗号
print(tup1, type(tup1))
print(tup2, type(tup2))
print(tup3, type(tup3))
('python', 12, 0) <class 'tuple'>
('p', 'y', 't', 'h', 'o', 'n') <class 'tuple'>
(180,) <class 'tuple'>
2.2 访问元组
tup1 = ('python', 12, 0)
print(tup1[0])
print(tup1[1:])
python
(12, 0)
2.3 元组不可变
所谓元组的不可变指的是元组所指向的内存中的内容不可变。
tup1 = ('python', 12, 0)
tup1[0] = 'asd'
Traceback (most recent call last):
File "D:/...", line 27, in <module>
tup1[0] = 'asd'
TypeError: 'tuple' object does not support item assignment
三、字典类型(Dictionary)
- 字典(Dictionary)是一种映射类型,字典用
{ }
标识,它是一个无序的key : value
的集合。 - 列表是有序的对象集合,而字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 值可以取任何数据类型;但键必须是不可变的,可以用数字,字符串或元组充当。
- 在同一个字典中,键(key)必须是唯一的。
1. 创建字典
dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
dict2 = dict(Id=2, Name='Amy', Age=21)
print(dict1, type(dict1))
print(dict2, type(dict2))
{'Id': 1, 'Name': 'Tom', 'Age': 18} <class 'dict'>
{'Id': 2, 'Name': 'Amy', 'Age': 21} <class 'dict'>
2.访问字典
- 一键一值的情况
dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
print(dict1['Id'])
print(dict1.keys()) # 输出所有键
print(dict1.values()) # 输出所有值
1
dict_keys(['Id', 'Name', 'Age'])
dict_values([1, 'Tom', 18])
- 一键多值的情况
dict3 = {'Id': [1, 2], 'Name': ['Tom', 'Tony'], 'Age': [18, 30]}
print(dict3['Name'][0])
Tom
3.修改字典
dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
dict1['Id'] = 10
print(dict1, type(dict1))
{'Id': 10, 'Name': 'Tom', 'Age': 18} <class 'dict'>
4.字典内置方法
方法/语法 | 描述 |
| 删除字典内所有元素 |
| 返回一个字典的浅复制 |
| 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
| 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
| 如果键在字典dict里返回true,否则返回false |
| 以列表返回可遍历的(键, 值) 元组数组 |
| 返回一个迭代器,可以使用 list() 来转换为列表 |
| 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
| 把字典dict2的键/值对更新到dict里 |
| 返回一个迭代器,可以使用 list() 来转换为列表 |
| 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
| 随机返回并删除字典中的最后一对键和值。 |