一, 列表
直接赋值: 只是传递对象的引用, 原始列表发生改变时, 被赋值的列表 b 也会改变
- >>> a = [1,[2,3,4]]
- >>> b = a
- >>> a,b
- ([1, [2, 3, 4]], [1, [2, 3, 4]])
- >>> a.append(5)
- >>> a,b
- ([1, [2, 3, 4], 5], [1, [2, 3, 4], 5])
- >>> a[1].append(6)
- >>> a,b
- ([1, [2, 3, 4, 6], 5], [1, [2, 3, 4, 6], 5])
浅拷贝: 只拷贝父对象, 不拷贝子对象, 因此当原始列表的父对象和子对象改变时, 被赋值的列表 b 的子对象会改变父对象不会改变
- >>> c = a.copy()
- >>> a,c
- ([1, [2, 3, 4], 5], [1, [2, 3, 4], 5])
- >>> a.append(7)
- >>> a,c
- ([1, [2, 3, 4], 5, 7], [1, [2, 3, 4], 5])
- >>> a[1].append(6)
- >>> a,c
- ([1, [2, 3, 4, 6], 5,7], [1, [2, 3, 4, 6], 5])
注: 红色代表子对象
深拷贝: copy 模块的 deepcopy 方法, 完全拷贝了父对象及其子对象
- >>>import copy
- >>> c = copy.deepcopy(a)
- >>> a, c
- ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
- >>> a[1].append(5)
- >>> a, c
- ({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})
索引: 根据索引查找元素
- >>> age_list = [18,15,19]
- >>> age_list[0]
- 18
切片: 截取需要的元素
- >>> age_list[0:2]
- [18, 15]
长度: 列表元素的个数
>>> len(age_list) 3
循环: 循环输出列表里的元素
- age_list = [18,15,19]
- for item in age_list:
- print(item)
列表内部提供的其它功能:
append(self, p_object): 在列表末尾添加对象
输入: p_object()需要添加的对象
功能: 在列表末尾添加对象
输出: 无
- >>> age_list = [12,13,14]
- >>> age_list.append(15)
- >>> age_list
- [12, 13, 14, 15]
clear(self): 清空
输入: 无
功能: 清空列表
输出: 无
- >>> l1 = age_list
- >>> l1
- [12, 13, 14, 15]
- >>> l1.clear()
- >>> l1
- []
copy(self): 浅拷贝, 复制列表的父对象, 不复制子对象
count(self, value): 查询 value 参数在列表中的个数
extend(self, iterable): 扩展列表元素
输入: iterable 是一个对象可以是字符串, 列表, 字典, 元组
功能: 将 iterable 中的元素一个个添加到列表尾部
输出: 无
- >>> a
- [1, [2, 3, 4, 6], 5, 1]
- >>> d = '12345'
- >>> a.extend(d)
- >>> a
- [1, [2, 3, 4, 6], 5, 1, '1', '2', '3', '4', '5']
index(self, value, start=None, stop=None): 查询 value 参数的位置
输入: value 为要查找的值
功能: 根据值查找
输出: 若找到则输出第一次 (左边) 出现的位置, 否则报错
- >>> a
- [1, 2, 3, 1]
- >>> a.index(1)
- 0
- >>> a.index(0)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- ValueError: 0 is not in list
insert(self, index, p_object): 插入
输入: index 索引号, p_object 要插入的对象
功能: 在索引号前插入一个对象
输出: 无
- >>> a
- [1, 2, 3, 1]
- >>> a.insert(1,'a')
- >>> a
- [1, 'a', 2, 3, 1]
pop(self, index=None): 删除(根据索引) 等于 del list[index]
输入: index 索引号
功能: 根据索引号删除列表里的元素, 默认删除最后一个
输出: 输出删除的元素, 若列表为空或索引超过列表长度就会报错
- >>> a
- [1, 'a', 2, 3, 1]
- >>> a.pop(1)
- 'a'
- >>> a.pop(5)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- IndexError: pop index out of range
remove(self, value): 删除(根据对象)
输入: 要删除的对象
功能: 根据值删除列表元素, 若有多个 value 值, 则删除左边第一个 value
输出: 无(若值不存在则报错)
- >>> a
- [1, 2, 3, 1]
- >>> a.remove(1)
- >>> a
- [2, 3, 1]
reverse(self): 将列表倒序
输入: 无
功能: 将列表里元素的顺序反过来
输出: 无
- >>> a
- [2, 3, 1]
- >>> a.reverse()
- >>> a
- [1, 3, 2]
来源: http://www.bubuko.com/infodetail-2623151.html