Loading... # 第二章 列表简介 ## 2.1 列表 <u>列表</u> 由一系列元素按特定顺序排列组成。 在Python中,用方括号( [ ] )来表示列表,并用逗号分隔其中的元素。 ```python fruits = ['apple', 'banana', 'orange'] print(fruits) ``` 如果将列表打印出来,Python将打印列表的内部表示,包括方括号。 输出结果: > ['apple', 'banana', 'orange'] ### 2.1.1 访问列表元素 列表是有序集合,要访问列表元素,只需像C语言中的数组一样,将元素的索引或位置表示出来即可。 例如: ```python fruits = ['apple', 'banana', 'orange'] print(fruits[0]) ``` 输出结果: > apple - 可以发现列表的索引与数组一样都是从0开始的。 - 但Python还提供了一种特殊语法,索引 -n 返回倒数第n个元素。所以一个长度为a的列表索引取值范围为:[ -a, a-1] ## 2.2 修改、添加和删除元素 ### 2.2.1 修改 可直接用赋值的方法修改列表的元素 ```python fruits = ['apple', 'banana', 'orange'] fruits[1] = "peach" print(fruits[1]) ``` ### 2.2.2 添加 #### 1.在列表末尾添加元素 ```python fruits = ['apple', 'banana', 'orange'] fruits.append('peach') print(fruits) ``` 输出结果为: > ['apple', 'banana', 'orange', 'peach'] - 方法`append()`会将参数的元素添加到列表末尾,而不影响其他元素 #### 2.在列表中插入元素 !!! 使用`insert()`可在列表中的任何位置插入新的元素。<u>为此需要指定新元素和索引的值。</u> ```python fruits = ['apple', 'banana', 'orange'] fruits.insert(2,'peach') print(fruits) ``` 在此示例中,insert(2, 'peach') 将新元素: 'peach'(第二个参数)插入到原列表的第2个位置(第一个参数);同时,从原来第2个位置往后的所有元素后移一位。 ### 2.2.3 删除 #### 1. 使用del语句删除元素 如果<u>已知所需删除的元素的位置</u>,可以使用`del语句` ```python fruits = ['apple', 'banana', 'orange'] del fruits[0] print(fruits) ``` 输出结果为: > ['banana', 'orange'] #### 2.使用方法pop()删除元素 有时候需要<u>将元素从列表中删除,并接着使用它的值。</u> - 方法`pop()`可删除列表末尾的元素,并返回其值(类比弹出栈的栈顶元素) ```python fruits = ['apple', 'banana', 'orange'] print(fruits) popped_fruit = fruits.pop() print(popped_fruit) print(fruits) ``` 输出结果为: > ['apple', 'banana', 'orange'] > orange > ['apple', 'banana'] - pop()可以在括号中加入参数,表示要删除的元素的索引 ```python fruits = ['apple', 'banana', 'orange'] popped_fruit = fruits.pop(2) print(popped_fruit) ``` 输出结果为: > orange #### 3.根据值使用remove方法删除元素 有时候,我们不知道所需删除的元素的具体位置,只知道删除的元素的值,可以使用方法`remove()` ```python 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()对列表永久性排序 ```python fruits = ['banana', 'orange', 'apple'] print(fruits) fruits.sort() print(fruits) ``` 输出结果为: > ['banana', 'orange', 'apple'] > ['apple', 'banana', 'orange'] 使用sort()之后,列表元素的顺序发生了永久性的变化 - 如果要按相反顺序排序列表,可以向sort()方法传递参数`reverse = True` ```python fruits = ['banana', 'orange', 'apple'] fruits.sort(reverse = True) print(fruits) ``` 输出结果为: > ['orange', 'banana', 'apple'] ### 2.3.2 使用函数sorted()对列表暂时性排序 ```python 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函数返回的是<u>排序过的新列表</u> !!! - 同样,可以向sorted()函数传递参数`reverse = True` 使其反向排序 ### 2.3.3 倒着打印列表 翻转列表元素的排列顺序,可以使用方法`reverse()` ```python fruits = ['banana', 'orange', 'apple'] fruits.reverse() print(fruits) ``` 输出结果为: > ['apple', 'orange', 'banana'] 可见方法reverse()永久性地改变了列表元素的排列顺序,<u>翻转了原来的列表元素顺序</u> ### 2.3.4 确定列表的长度 使用函数`len()`可以快速得到列表的长度。 ```python fruits = ['banana', 'orange', 'apple'] print(len(fruits)) ``` 输出结果为: > 3 最后修改:2021 年 08 月 01 日 02 : 59 PM © 允许规范转载