概述
Python中的列表是简直可说是有容乃大,虽然看似类似C中的数组,但是Python列表可以接受任意的对象元素,比如,字符串,数字,布尔值,甚至列表,字典等等,自由度提升到一个新的高度,而Python也提供了大量列表相关的内置方法来有效操作列表:
方法 | 描述 |
---|---|
append | 将单个对象添加至列表末尾 |
clear | 删除列表中所有项目 |
copy | 列表的浅拷贝,参见上篇文章《Python列表赋值,复制,深拷贝以及5种浅拷贝详解》 |
count | 统计指定对象在列表中出现的次数 |
extend | 通过附加iterable(比如列表,元组)中的元素来扩展列表,可以实现浅复制 |
index | index(self, value, start=None, stop=None) 使用方法和字符串中的index一致,即寻找列表中出现指定对象的第一个索引,可以利用start=None, stop=None 指定索引区间(切片),例中即在L中寻找对象元素1,索引范围L[3:-1] |
insert | insert(self, index, p_object) 在索引之前插入对象 |
pop | pop(self, index=None)删除并返回索引处的项目(默认为最后一个元素)。 如果list为空或索引超出范围,则引发IndexError异常。 可以配合append实现栈 |
remove | remove(self, value) 删除第一次出现的执行对象。如果值不存在,则引发ValueError |
reverse | 反转列表,效果和L[::-1]一致,但是reverse是在列表原处改变 |
sort | sort(cmp=None, key=None, reverse=False) 对列表内的元素排序,cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。排序规则,reverse = True 降序, reverse = False 升序(默认) |
示例代码
import copy
L = [1, 'S', [33, 'Py'], False, 1, 3]
print(L)
# append|将单个对象添加至列表末尾
L1 = copy.deepcopy(L)
L1.append('end')
print(L1)
# clear|删除列表中所有项目
L2 = copy.deepcopy(L)
L2.clear()
print(L2)
# copy|列表的浅拷贝,参见上篇文章《Python列表赋值,复制,深拷贝以及5种浅拷贝详解》
L3 = copy.deepcopy(L)
L33 = []
L33 = L3.copy()
print(L3)
L33[2][0] = 'shallow copy'
print(L3)
# count|统计指定对象在列表中出现的次数
L4 = copy.deepcopy(L)
one_count = L4.count(1)
print(one_count)
# extend|通过附加iterable(比如列表,元组)中的元素来扩展列表,可以实现浅复制
L5 = []
L5.extend(L)
print(L5)
# index| index(self, value, start=None, stop=None) 使用方法和字符串中的index一致,即寻找列表中出现指定对象的第一个索引,可以利用`start=None, stop=None`指定索引区间(切片)
# 例中即在L中寻找对象元素1,索引范围L[3:-1]
index = L.index(1, 3, -1)
print(index)
# insert| insert(self, index, p_object) 在索引之前插入对象
L7 = copy.deepcopy(L)
L7.insert(1, 'new_insert')
print(L7)
# pop| pop(self, index=None)删除并返回索引处的项目(默认为最后一个元素)。 如果list为空或索引超出范围,则引发IndexError异常。 可以配合append实现栈
L8 = copy.deepcopy(L)
last = L8.pop()
print(L8)
print(last)
s_index = L8.pop(0)
print(L8)
print(s_index)
# remove|remove(self, value) 删除第一次出现的执行对象。如果值不存在,则引发ValueError。
L9 = copy.deepcopy(L)
L9.remove('S')
print(L9)
# reverse|反转列表,效果和L[::-1]一致,但是reverse是在列表原处改变
L10 = copy.deepcopy(L)
L10.reverse()
print(L10)
print(L10[::-1])
#