列表
列表的创建
mylist = ["a", 1, "b", 2, "c", "d"]
列表中的元素可以是数字,字符串或列表。同一个列表中的元素类型不需要完全一致,如上代码所示。
访问列表的值
两种情况:
- 和C相同的方式用索引下标查找列表中对应下标的值,下标从0开始从左往右递增。
- python支持负数查找,-1表示倒数第一个元素,以此类推
- 可以以切片的方式,如
list[idx1:idx2]
,表示访问[idx1,idx2)区间的元素。此外,idx1为空时默认为0,idx2为空时默认为列表长度。
更新列表
- 使用
append
方法,相当于cpp的vector中的push_back,如:
mylist = [1, 2, 3]
mylist.append("qaq")
print(mylist)
#[1, 2, 3, "qaq"]
- 和cpp一样,可以对列表对应下标的元素进行重新赋值
mylist = [1, 2, 3]
mylist[1] = "qaq"
print(mylist)
#[1, "qaq", 3]
删除列表中的元素
使用del
语句,如:
mylist = [1, 2, 3]
del mylist[1]
print(mylist)
#[1, 3]
Python列表脚本操作符
表达式 | 例子 | 结果 | 描述 |
---|---|---|---|
len() | len([1, 2, 3]) | 3 | 求列表长度 |
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 列表拼接 |
* | ["qaq"] * 2 | ["qaq", "qaq"] | 列表重复 |
in | 3 in [1, 2, 3] | True | 判断列表中有无该元素 |
for ... in | for i in [1, 2, 3]: print(i, end = " ") | 1 2 3 | 遍历列表中元素 |
Python列表相关函数
序号 | 函数 | 解释 |
---|---|---|
1 | len(list) | 获取列表的长度 |
2 | max(list) | 返回列表函数最大值(字符则按字典序最大值返回) |
3 | min(list) | 返回列表函数最小值(字符则按字典序最小值返回) |
4 | list(seq) | 讲元组或字符串转换为列表 |
Python列表相关方法
序号 | 方法 | 解释 |
---|---|---|
1 | list.append(obj) | 在末尾添加新对象,这个对象可以是数字,字符串,列表。需要注意的是,append是浅拷贝,如果在append一个对象时需要特别注意。需要深拷贝时可以使用list.append( copy.deepcopy( obj ) )解决 |
2 | list.count(obj) | 统计某元素在列表里出现的字数 |
3 | list.extend(seq) | 将seq中所有元素添加到列表末尾。seq是元素列表,可以是列表、元组、集合、字典,若为字典,则会将键作为元素一次添加至列表末尾。 |
4 | list.index(obj) | 找到列表中第一个匹配obj的下标位置。 |
5 | list.insert(index, obj) | 将对象插入列表,需要注意的是,obj是浅拷贝 |
6 | list.pop(index) | 将下标所在元素删除,如果不指定下标,默认为最后一个元素。 |
7 | list.remove(obj) | 删除列表中第一个与obj匹配的元素 |
8 | list.reverse() | 翻转列表中的元素。注意如果有嵌套列表,不会递归翻转。 |
9 | list.sort(key=None, reverse=False) | 对列表进行排序,key为指定某个元素(用于元组等),reverse为是否倒序排序。默认升序排序。需要注意的是不同类型元素可能不能进行比较。 |
10 | list.clear() | 清空列表,类似del a[:] |
11 | list.copy() | 拷贝列表(深拷贝) |
列表的截取与拼接
- 截取:以切片的方式,如
list[idx1:idx2]
,表示访问[idx1,idx2)区间的元素。此外,idx1为空时默认为0,idx2为空时默认为列表长度。 - 拼接:
+
运算符,例子如上, 也可以用+=
运算符,和cpp类似。
嵌套列表
和C类似,如:
mylist = [['qwq', 'qvq', 'qaq'], [666, 555, 777]]
# mylist[0][1] 为 'qvq'
a = [1, 2, 3]
mylist = [a, [5, 6, 7]]
# mylist[0][1] 为 2
还没发表评论,快来发表第一个评论吧~