列表简介
1. 简介
由一系列按特定顺序排列的元素组成的有序集合
- 建议给列表指定一个表示复数的名称(如letters、digits或names)
- 使用单数和复数式名称,可帮助你判断代码段处理的是单个列表元素还是整个列表
# 在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素
bicycles = ['trek', 'redline', 'specialized']
# print(列表名)将打印列表的内部表示,包括方括号
print(bicycles) => ['trek', 'redline', 'specialized']
# 可对列表元素调用字符串方法
print(bicycles[0].title()) => Trek
索引
- 第一个列表元素的索引为0
- 最后一个列表元素的索引为-1,索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素…
- 仅当列表为空时,这种访问最后一个元素的方式才会导致错误
2. 修改、添加和删除元素
(1) 修改
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles[0] = 'ducati'
print(motorcycles) => ['ducati', 'yamaha', 'suzuki']
(2) 添加
# append():末尾添加
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.append(‘ducati’)
print(motorcycles) => ['honda', 'yamaha', 'suzuki', 'ducati']
# insert():指定位置插入
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, ‘ducati’)
print(motorcycles) => ['ducati', 'honda', 'yamaha', 'suzuki']
(3) 删除
# del语句:指定位置删除
motorcycles = ['honda', 'yamaha', 'suzuki']
del motorcycles[0]
print(motorcycles) => ['yamaha', 'suzuki']
# pop():删除末尾元素并返回
motorcycles = ['honda', 'yamaha', 'suzuki']
poppped_motorcycle = motorcycles.pop()
print(motorcycles) => [honda', 'yamaha']
print(poppped_motorcycle) => suzuki
# pop(n):删除指定位置元素并返回
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print(motorcycles) => ['yamaha', 'suzuki']
print(first_owned) => honda
# remove():根据值删除元素
# 注意:remove()只删除第一个指定的值,若要全部删除多次出现的某值,需要借助循环
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles.remove('ducati')
print(motorcycles) => ['honda', 'yamaha', 'suzuki']
3. 组织列表
(1) sort()
永久性排序
# 假设列表中所有的值都小写。因为大写字母有多种解读方式,要指定准确的排列顺序,可能比我们这里做的要复杂
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars) => ['audi', 'bmw', 'subaru', 'toyota']
反向排序
传参 reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars) => ['toyota', 'subaru' 'bmw', 'audi']
(2) sorted()
临时排序
# 假设列表中所有的值都小写。因为大写字母有多种解读方式,要指定准确的排列顺序,可能比我们这里做的要复杂
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(sorted(cars)) => ['audi', 'bmw', 'subaru', 'toyota']
print(cars) => ['bmw', 'audi', 'toyota', 'subaru']
反向排序
传参 reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(sorted(cars, reverse=True)) => ['toyota', 'subaru' 'bmw', 'audi']
print(cars) => ['bmw', 'audi', 'toyota', 'subaru']
(3) reverse()
永久性反转顺序
# 恢复顺序:再次调用 reverse()
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(cars) => ['subaru', 'toyota', 'audi', 'bmw']
(4) len()
获取长度
# 发生索引错误时,可以尝试将列表或其长度打印出来
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars) => 4