列表是最常用的Python数据类型。它一种有序的集合,可以随时添加和删除其中的元素。
列表的数据项不需要具有相同的类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
list1 = ["test1","test2",1234,5.12]
list2 = [1,2,3,4,5,6]
list3 = ["a","b","c","d"]
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
一、列表常用操作
1.1、获取列表元素
我们可以使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取(切片):
list1 = ["test1","test2",1234,5.12]
print("list1[2]:",list1[2])
print("list1[1:3]",list1[1:3])
1.2、修改/添加列表元素
我们可以直接使用索引修改列表对应位置的元素,我们可以使用append、extend、insert函数为列表添加元素。
list1 = ["test1","test2",1234,5.12]
print("原list1[2]=",list1[2])
list1[2] = 1000
print("修改后list1[2]=",list1[2])
list2 = [1,2,3,4,5,6]
#添加元素
list2.append(7)
print("list2:",list2)
#添加的元素也是列表
list2.append([7,8,9])
print("list2:",list2)
使用extend()将列表中的元素逐一添加至待添加列表中:
list3 = [1,2,3,4,5,6]
list3.extend([7,8,9])
print("list3:",list3)
注意区分append和extend添加列表时候的区别。
无论是append还是extend函数都是从列表尾部添加元素,我们使用insert(index,obj)实现任意位置的添加:
list4 = [1,2,3,4,5,6]
list4.insert(2,777)
print("list4:",list4)
1.3、删除列表元素
- 可以使用 del 来删除列表的的元素,它根据下标删除指定元素,其实它也可以删除整个列表,但是列表不能再使用了,需要重新定义列表:
list2 = [1,2,3,4,5,6]
#删除指定元素
del list2[2]
print("list2:",list2)
#删除整个list
del list2
使用pop删除指定位置元素,删除同时会将删除元素返回:
list2 = [1,2,3,4,5,6]
n = list2.pop(2)
print("list2:",list2)
print("n = ",n)
remove删除首个符合条件的元素,注意不是使用索引删除元素,如果指定要删除的元素不存在于列表中则抛异常:
list2 = [1,2,2,3,4,5,6] list2.remove(2) print("list2:",list2) list2.remove(7) print("list2:",list2)
二、列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
表达式 | 结果 | 描述 |
---|---|---|
[1,2,3] + [4,5,6] | [1,2,3,4,5,6] | 组合 |
[1] * 4 | [1,1,1,1] | 重复 |
三、列表截取
列表的截取和拼接和字符串类似。
list = ["C","C++","JAVA","PYTHON","PHP"]
表达式 | 结果 | 描述 |
---|---|---|
list[2] | JAVA | 获取索引为2的元素 |
list[-2] | PYTHON | 获取倒数第2个元素 |
list[1:3] | [“C++”,”JAVA”] | 获取索引为1到2(因为包头不包尾)的元素 |
四、列表函数&方法
函数 | 描述 | 实例 |
---|---|---|
len(list) | 返回列表元素个数 | list = [1,2,3,4,5] len(list) 输出结果:5 |
max(list) | 返回列表元素最大值 | list = [1,2,3,4,5] max(list) 输出结果:5 |
min(list) | 返回列表元素最小值 | list = [1,2,3,4,5] min(list) 输出结果:1 |
list(seq) | 将元组转换为列表 | tuple = (1, 2, 3,4) list1 = list(tuple) print (type(list1)) 输出结果:<class ‘list’> |
list.append(obj) | 在列表末尾添加新的对象 | |
list.count(obj) | 统计某个元素在列表中出现的次数 | |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) | |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置。 | |
list.pop(obj=list[-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 | |
list.remove(obj) | 移除列表中某个值的第一个匹配项 | |
list.reverse() | 反向列表中元素 | |
list.sort([func]) | 对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数 参数: func – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 |
list = [1,4,5,3,2] list.sort() 输出结果:[1,2,3,4,5] 由大到小排序:list.sort(reverse=True) |
list.clear() | 清空列表 | |
list.copy() | 用于复制(深拷贝)列表。返回复制后的新列表。 |