python 列表
在列表中添加元素
- 在列表末尾添加元素
append()
将元素添加到了列表末尾,而不影响列表中的其他所有元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
- 在列表中插入元素
insert()
可在列表的任何位置添加新元素。
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
从列表中删除元素
- 使用使
del
语句删除元素
如果知道要删除的元素在列表中的位置,可使用del 语句。
motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles)
del motorcycles[0]
print(motorcycles)
#使用del 删除了列表motorcycles 中的第一个元素——'honda'
- 使用方法
pop()
删除元素
方法pop()
可删除列表末尾的元素,并让你能够接着使用它。术语弹出弹 (pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
我们首先定义并打印了列表motorcycles 。接下来,我们从这个列表中弹出一个值,并将其存储到变量popped_motorcycle 中。然后我们打印这个列 表,以核实从其中删除了一个值。最后,我们打印弹出的值,以证明我们依然能够访问被删除的值。
同时,你可以使用pop()
来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print('The first motorcycle I owned was a ' + first_owned.title() + '.')
注:每当你使用pop()
时,被弹出的元素就不再在列表中了。
如果你不确定该使用del
语句还是pop()
方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del
语句;如果你要在删除元 素后还能继续使用它,就使用方法pop()
。
- 根据值删除元素
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove()
。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati') print(motorcycles)
注 方法remove()
只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
组织列表
- 使用方法
sort()
对列表进行永久性排序
方法sort()
永久性地修改了列表元素的排列顺序。现在,汽车是按字母顺序排列的。你还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()
方法传递参数reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
cars.sort(reverse=True)
print(cars)
- 使用函数
sorted()
对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()
。函数sorted()
让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the original list again:")
print(cars)
注意,调用函数sorted() 后,列表元素的排列顺序并没有变。
如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted() 传递参数reverse=True
。
在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的要复杂。
- 倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()
,reverse()
不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。
方法reverse()
永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse()
即可。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
- 确定列表的长度
使用函数len() 可快速获悉列表的长度。Python计算列表元素数时从1开始,因此确定列表长度时,应该不会遇到差一错误。
在下面的示例中,列表包含4个元素,因此其长度为4:
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
使用列表时避免索引错误
刚开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取第四个元素,这将导致索引错误索 。
索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索引减1,然后再次运行程序,看看结果是否正确。 别忘了,每当需要访问最后一个列表元素时,都可使用索引-1 。这在任何情况下都行之有效,即便你最后一次访问列表后,其长度发生了变化:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[-1])
注 发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。列表可能与你以为的截然不同,在程序对其进行了动态处理时尤其如此。通过查看列表或其包含的元素数,可帮助找出这种逻辑错误。