第二章 列表简介

2.1 列表

列表 由一系列元素按特定顺序排列组成。

在Python中,用方括号( [ ] )来表示列表,并用逗号分隔其中的元素。

fruits = ['apple', 'banana', 'orange']
print(fruits)

如果将列表打印出来,Python将打印列表的内部表示,包括方括号。

输出结果:

['apple', 'banana', 'orange']

2.1.1 访问列表元素

列表是有序集合,要访问列表元素,只需像C语言中的数组一样,将元素的索引或位置表示出来即可。
例如:

fruits = ['apple', 'banana', 'orange']
print(fruits[0])

输出结果:

apple

  • 可以发现列表的索引与数组一样都是从0开始的。
- 但Python还提供了一种特殊语法,索引 -n 返回倒数第n个元素。所以一个长度为a的列表索引取值范围为:[ -a, a-1]

2.2 修改、添加和删除元素

2.2.1 修改

可直接用赋值的方法修改列表的元素

fruits = ['apple', 'banana', 'orange']
fruits[1] = "peach"
print(fruits[1])

2.2.2 添加

1.在列表末尾添加元素

fruits = ['apple', 'banana', 'orange']
fruits.append('peach')
print(fruits)

输出结果为:

['apple', 'banana', 'orange', 'peach']

  • 方法append()会将参数的元素添加到列表末尾,而不影响其他元素

2.在列表中插入元素

fruits = ['apple', 'banana', 'orange']
fruits.insert(2,'peach')
print(fruits)

在此示例中,insert(2, 'peach') 将新元素: 'peach'(第二个参数)插入到原列表的第2个位置(第一个参数);同时,从原来第2个位置往后的所有元素后移一位。

2.2.3 删除

1. 使用del语句删除元素

如果已知所需删除的元素的位置,可以使用`del语句`
fruits = ['apple', 'banana', 'orange']
del fruits[0]
print(fruits)

输出结果为:

['banana', 'orange']

2.使用方法pop()删除元素

有时候需要将元素从列表中删除,并接着使用它的值。
  • 方法pop()可删除列表末尾的元素,并返回其值(类比弹出栈的栈顶元素)
fruits = ['apple', 'banana', 'orange']
print(fruits)

popped_fruit = fruits.pop()
print(popped_fruit)
print(fruits)

输出结果为:

['apple', 'banana', 'orange']
orange

['apple', 'banana']

  • pop()可以在括号中加入参数,表示要删除的元素的索引
fruits = ['apple', 'banana', 'orange']

popped_fruit = fruits.pop(2)
print(popped_fruit)

输出结果为:

orange

3.根据值使用remove方法删除元素

有时候,我们不知道所需删除的元素的具体位置,只知道删除的元素的值,可以使用方法remove()

fruits = ['apple', 'banana', 'orange', 'apple']
print(fruits)
fruits.remove('apple')
print(fruits)

输出结果为:

['apple', 'banana', 'orange', 'apple']

['banana', 'orange', 'apple']

<font size = 4 face = "黑体">注意: </font> remove只能删除第一个指定的元素

2.3 组织列表

2.3.1 使用方法sort()对列表永久性排序

fruits = ['banana', 'orange', 'apple']
print(fruits)
fruits.sort()
print(fruits)

输出结果为:

['banana', 'orange', 'apple']

['apple', 'banana', 'orange']

使用sort()之后,列表元素的顺序发生了永久性的变化

  • 如果要按相反顺序排序列表,可以向sort()方法传递参数reverse = True
fruits = ['banana', 'orange', 'apple']
fruits.sort(reverse = True)
print(fruits)

输出结果为:

['orange', 'banana', 'apple']

2.3.2 使用函数sorted()对列表暂时性排序

fruits = ['banana', 'orange', 'apple']

print("Here is the original list:")
print(fruits)
print("\nHere is the sorted list:")
print(sorted(fruits))
print("\nHere is the original list again:")
print(fruits)

输出结果为:

Here is the original list:
['banana', 'orange', 'apple']

Here is the sorted list:
['apple', 'banana', 'orange']

Here is the original list again:
['banana', 'orange', 'apple']

可见使用sorted后,列表元素的顺序并没有发生改变,sorted函数返回的是排序过的新列表
  • 同样,可以向sorted()函数传递参数reverse = True 使其反向排序

2.3.3 倒着打印列表

翻转列表元素的排列顺序,可以使用方法reverse()

fruits = ['banana', 'orange', 'apple']
fruits.reverse()
print(fruits)

输出结果为:

['apple', 'orange', 'banana']

可见方法reverse()永久性地改变了列表元素的排列顺序,翻转了原来的列表元素顺序

2.3.4 确定列表的长度

使用函数len()可以快速得到列表的长度。

fruits = ['banana', 'orange', 'apple']
print(len(fruits))

输出结果为:

3