python列表:
列表、元组、字典分别对应list, tuple, dict
1.list的简介
列表是python内置的一种数据类型,是一种有序的集合,可对其进行增删改查。列表中的元素不一定是同类型的。列表是可变序列
2.list的初始化
list = [] # 空列表初始化
list = ['a', 'b', 'c'] # 有值初始化
list = [1, 2, 3, 'a', 'b', 'c'] # 包含不同类型元素的元组
list = [x for x in range(10)] # 使用列表推导式
list = list() # 使用类型的构造器
list = list(iterable) # iterable 是可迭代对象,例如:tuple
3.list的切片使用
list = [0,1,2,3,4,5,6,7]
list_1 = list[0:3] # [0,1,2]
list_2 = list[2:3] # [2]
list_3 = list[:3] # [0,1,2]
list_4 = list[3:] # [3,4,5,6,7]
list_5 = list[:] # [0,1,2,3,4,5,6,7]
总结:
- list[n:m] 取值下标[n, m-1]之间的元素
- list[:m] 取值下标[0, m-1]之间的元素
- list[n:] 取值下标[n, len(list)-1]之间的元素
使用切片返回的元素是原列表的一个复制
4.list的复制
arr = [1,2,3] # 原数组
arr_1 = arr[:] # arr_1 利用切片进行复制
arr_2 = list(arr) # arr_2 利用构造器进行复制
arr_3 = arr.copy() # arr_3 利用列表中的方法进行复制
5.list的运算符
arr_1 = [1,2,3]
arr_2 = [4,5,6]
arr_3 = arr_1 + arr_2 # 连接两个列表 [1,2,3,4,5,6]
arr_4 = arr_1 * 2 # 重复列表 [1,2,3,1,2,3]
flag = 3 in arr_1 # 判断某个元素是否在列表中
for x in arr_1: # 迭代数组
print(x)
5.list的实现方法
序号 | 函数 | 含义 |
---|---|---|
1 | list.append(obj) | 在列表尾部添加一个新的对象 |
2 | list.remove(obj) | 移除列表中某个值的第一个匹配项 |
3 | list.index(obj) | 寻找列表中某个值第一个匹配项的索引位置 |
4 | list.reverse() | 反向列表中元素 |
5 | list.clear() | 清空列表中元素 |
6 | list.copy() | 复制列表 |
7 | list.sort(key=None, reverse=False) | 对原列表进行排序 |
8 | list.count(obj) | 统计某个元素在列表中出现的次数 |
9 | list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
10 | list.insert(index, obj) | 在指定位置插入元素 |
11 | list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个) |
作用于list的函数
序号 | 函数 | 含义 |
---|---|---|
1 | len(list) | 返回列表元素个数 |
2 | max(list) | 返回列表中元素的最大值(数组中元素应是同类型) |
3 | min(list) | 返回列表中元素的最小值(数组中元素应是同类型) |
4 | list(seq) | 将元组转换为列表,这里list为一个构造器 |
参考:
python元组
1.tuple简介
元组与列表类似, 不同之处是元组中的元素不可更改
2.tuple初始化
tup = () # 空元组初始化
tup = (1,) # 仅有一个元素的初始化,应当在元素后加一个逗号,以防被当成运算符(括号)处理
tup = tuple() # 利用构造器进行初始化
tup = tuple(iterable) # 支持传入迭代器对象,例如:列表,字符串等
3.tuple切片
元组的切片使用方式同列表
4.tuple复制
tup = (1,2,4)
tup_1 = tup[:] # 利用切片
tup_2 = tup # 直接赋值
5.作用于tuple的函数
序号 | 函数 | 含义 |
---|---|---|
1 | len(tup) | 返回元组元素个数 |
2 | max(tup) | 返回元组中元素的最大值(元组中元素应是同类型) |
3 | min(tup) | 返回元组中元素的最小值(元组中元素应是同类型) |
4 | tuple(seq) | 将列表转换为元组,这里tuple函数为一个构造器 |
参考:
python 字典
1.dict 简介
字典是可变容器,可存储任意类型对象; 包括键和值
可类比其他语言中的map
键不能重复,向字典中添加键相同的键值对, 后者的值会覆盖前者
键必须不可变, 可以用数字或者字符串, 但是列表不行
2.dict初始化
dict = {} # 空元组初始化
dict = dict() # 利用构造器进行初始化
dict = {'abc':123, 'aaa':345, 'string':6666} # 带有初始值的初始化
3.dict 的访问
value = dict['abc'] # 利用键作为索引,取键对应的值,访问不存在的数据会报错
dict['abc'] = 7777 # 更改键对应的值
4.dict中的方法
序号 | 函数 | 描述 |
---|---|---|
1 | dict.clear() | 清空字典 |
2 | dict.copy() | 返回字典的浅复制 |
3 | dict.get(key,default=None) | 返回指定键的值,如果不存在返回default值 |
4 | dict.setdefault(key, default=None) | 与get类似, 如果不存在, 则添加该键, 值为default对应值 |
5 | key in dict | 如果key在字典中返回True, 否则返回False |
6 | dict.items() | 以列表返回可遍历的(键,值)元组数组 |
7 | dict.keys() | 返回一个包含所有key的迭代器,可用list转换为列表。 |
8 | dict.values() | 返回一个包含所有values的迭代器, 可用list转换为列表。 |
9 | dict.update(dict2) | 把字典dict2的键/值对更新到dict中 |
10 | dict.pop(key,[,default]) | 删除字典给定键所对应的键值对,返回被删除的值 |
11 | dict.popitem() | 随机返回并删除字典中的最后一对键和值。 |
12 | dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
python集合
1.set简介
集合中的元素是无序的, 不重复的
2.set初始化
set = set() # 创建空集合必须用这种方式
dict = {} # 使用这种方式创建的为空的字典
set = {1,2,3,4} # 可以用这种方式创建有初始值的集合
set = set(iterable) # 可以使用可迭代对象创建, 例如列表和元组
3.set中的方法
方法 | 描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
4.作用于set中的方法
序号 | 函数 | 含义 |
---|---|---|
1 | len(set) | 返回集合元素个数 |
2 | max(set) | 返回集合中元素的最大值(集合中元素应是同类型) |
3 | min(set) | 返回集合中元素的最小值(集合中元素应是同类型) |
4 | set(seq) | 将列表转换为集合,这里set函数为一个构造器 |