列表由一系列按特定顺序排列的元素组成,用 [ ] 来表示,可以存放各种数据类型
一、列表生成式
# 1. 直接生成列表
list1 = [1,"str",True]
# 2. 列表生成式,例如用range生成数字
list2 = range(1,5) // [1,2,3,4]
# 3. 列表推导式(根据映射方式)
# 例如,如下生成的列表为range(1,5)元素x ==> x平方生成的列表
list3 = [x**2 for x in range(1,5)] //[1,4,9,16]
二、列表的增删改查
(1)增
append(obj):在列表最后添加元素
list = ["a","b","c"]
list.append("d")
print(list) // ["a","b","c","d"]
insert (index,obj): 在列表指定位置插入元素
list = ["a","b","c"]
list.insert(1,"d") //在索引为1处插入元素
print(list) //['a', 'd', 'b', 'c']
extend方法: list.extend(seq) 追加列表
list1 = ["a","b","c"]
list2 = [1,2,3]
list1.extend(list2) // 在list1中追加list2
print(list1) // ['a', 'b', 'c', 1, 2, 3]
(2)删
del方法:del list[index]
list = ["a","b","c"]
del list[0] // 删除索引为0的元素
print(list) // ["b","c"]
pop方法:list.pop([index]) 默认index为-1,即删除最后一个元素,会返回删除的元素值
list = ["a","b","c"]
num = list.pop(2) // 删除索引为2的元素
print(num) // 返回删除的元素 "c"
print(list) // ["a","b"]
remove方法:list.remove(value) ,移除指定元素,若有多个相同元素,则移除最左边的
list = ["a","b","c"]
list.remove("a") // 移除“a”
print(list) //["b","c"]
(3) 改:根据索引来改元素
list = ["a","b","c"]
list[0] = 1
print(list) //[1,"b","c"]
(4) 查
a. 获取根据索引来获取单个元素 list[index]
b. 获取指定元素的索引 list.index(value,[start,end]) 若在指定范围有多个相同元素,则默认为最左边的元素索引
list = ["a", 'b', 'c','b','b','d']
idx = list.index("b",2,5) //在[2,5]索引区间获取b的索引
print(idx) //3
c. 获取指定元素个数 list.count(value)
list = ["a", 'b', 'c','b']
num = list.count("b")
print(num) //2
d. 列表切片 list[start:end:step] 默认start=0,end为列表长度,step=1
特别 list[::-1] 为反转列表
list = [1,2,3,4,5,6]
new = list[::]
print(new) //[1,2,3,4,5,6]
三、列表的遍历操作
1. 根据元素进行遍历
list = [1,2,3,4]
for item in list:
print(item)
//结果
1
2
3
4
2. 根据元素索引进行遍历
list = [1,2,3,4]
for index in range(len(list)):
print(index,list[index])
// 结果
0 1
1 2
2 3
3 4
3. 通过遍历枚举对象
通过枚举函数enumerate(seq,[start=0]) 将一个可遍历的对象(如列表,元组等)组合为一个索引序列
item = ["a","b","c"]
print(list(enumerate(item)))
// [(0, 'a'), (1, 'b'), (2, 'c')]
for index,value in list(enumerate(item)):
print(index,value)
//结果
0 a
1 b
2 c
4. 通过迭代器来遍历:迭代器有一些特性,可看博客其他文章,这里只讲方法
list = ["a","b","c"]
# 构造迭代器
item = iter(list)
for item in list:
print(item)
# 或者用next()来遍历
# 注意每次使用需要生成新的迭代器
item= iter(list)
print(next(item)) //"a"
print(next(item)) //"b"
print(next(item)) //"c"
四、其他相关操作
sorted 函数: sorted(list,key=keysort,reverse=True) 不会改变原列表
list = [("a",12),("b",11),("c",10)]
def keysort(item): // 定义一个关键字返回函数
return item[1] // index=1返回
new_list = sorted(list,key=keysort,reverse=True)
//返回index=1排序,reverse默认为False,升序排列
print(new_list) // [('a', 12), ('b', 11), ('c', 10)]
sort()函数 :list.sort(key=keysort,reverse=True) 会改变原列表
reverse()函数:list.reverse() 反转列表,会改变原列表
切片反转:list[::-1]