列表

列表的创建

mylist = ["a", 1, "b", 2, "c", "d"]

列表中的元素可以是数字,字符串或列表。同一个列表中的元素类型不需要完全一致,如上代码所示。

访问列表的值

两种情况:

  1. 和C相同的方式用索引下标查找列表中对应下标的值,下标从0开始从左往右递增。
  2. python支持负数查找,-1表示倒数第一个元素,以此类推
  3. 可以以切片的方式,如list[idx1:idx2],表示访问[idx1,idx2)区间的元素。此外,idx1为空时默认为0,idx2为空时默认为列表长度。

更新列表

  1. 使用append方法,相当于cpp的vector中的push_back,如:
mylist = [1, 2, 3]
mylist.append("qaq")
print(mylist)
#[1, 2, 3, "qaq"]
  1. 和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() 拷贝列表(深拷贝)

列表的截取与拼接

  1. 截取:以切片的方式,如list[idx1:idx2],表示访问[idx1,idx2)区间的元素。此外,idx1为空时默认为0,idx2为空时默认为列表长度。
  2. 拼接:+ 运算符,例子如上, 也可以用 += 运算符,和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

Categories:

Tags:

还没发表评论,快来发表第一个评论吧~

发表回复