3_列表(list)
1.定义
- 列表是由一系列特定顺序排列的元素组成,其中的元素可以是字符串、数字,也可以将任何东西加入列表中,其中元素之间可以没有任何关系。在Python中,用方括号
[ ]
来表示列表,并用英文状态下的逗号,
来分隔列表中的元素。
2.语法
- 格式:
list = [元素1,元素2,...,元素n,]
- 一个简单的列表:
hobbys = ['读书','运动','游戏',]
- 注意:在定义列表时,最好在最后一个元素的末尾也加上
,
,这样在只有加入新的元素时不会容易出错。
3.访问列表的元素
- 列表是有序集合,因此需要访问列表中的元素时,只需指出该元素的索引即可。要访问列表元素,可指出列表名,后面再指出元素索引,并将其放入方括号即可。例如:访问第二个元素
print(hobbys[1])
- 注意: 在Python中,列表元素的索引是从0开始的。也就是列表的第一个元素索引是0,第二个元素是1…,根据这种简单的技术方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。
- 访问列表中特殊位置的元素:当需要访问列表中最后一个元素时,Python提供了一种特殊的语法。通过将索引制定为-1,可让Python返回最后一个列表元素。如:
print(hobbys[-1])
。当然这种约定也适合其他负数索引,例如索引-2将返回倒数第二个列表元素…以此类推。这种语法很有用,因为你经常需要在不知道列表长度的情况下访问最后一个列表元素。
4. 修改、添加和删除列表元素
-
修改列表中的元素。格式:
列表名[索引] = 新值
-
向列表添加新元素
-
在列表末尾添加元素,格式:
.append(值)
。你可以一开始建一个空的列表,通过循环向列表中添加值。比如:nums = [] for i in range(0,11): nums.append(i) print(nums)
运行结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-
在列表中添加元素,格式:
.insert(index,value)
。这种操作会将列表中插入索引后面既有的每个元素索引都右移一位。
num_list = [1,2,3,4,6,7,8,9] print(num_list) print('插入之前数字9的索引:{}'.format(num_list.index(9))) num_list.insert(3,5) # 在索引为3的位置插入数字5 print(num_list) print('插入之后数字9的索引:{}'.format(num_list.index(9)))
运行结果:
[1, 2, 3, 4, 6, 7, 8, 9]
插入之前数字9的索引:7
[1, 2, 3, 5, 4, 6, 7, 8, 9]
插入之后数字9的索引:8 -
-
删除列表中的元素
- 使用del语句删除元素:如果知道元素所在列表中的位置,可使用del语句。格式:
del 列表名[索引]
。使用del语句将值从列表中删除后,就无法再访问他它。 例如:
```python
num_list = [1,2,3,4,5,6,7,8,9]
print('删除之前:{}'.format(num_list))
del num_list[1]
print('删除之后:{}'.format(num_list))
```
> 运行结果:
>
> 删除之前:[1, 2, 3, 4, 5, 6, 7, 8, 9]
> 删除之后:[1, 3, 4, 5, 6, 7, 8, 9]
- 使用pop方法删除元素:有时候你要将元素从列表中删除,并接着使用它的值。这时候,你可以使用
.pop(index)
方法。实际上,你可以使用.pop()
来删除列表中任意位置的元素,只需在括号中指定要删除的元素索引即可,当不指定索引时,默认弹出最后一个元素。格式:list.pop(index)
```python
num_list = [1,2,3,4,5,6,7,8,9]
print('删除之前:{}'.format(num_list))
num = num_list.pop(4)
print('删除的值:{}'.format(num))
print('删除之后:{}'.format(num_list))
```
> 运行结果:
>
> 删除之前:[1, 2, 3, 4, 5, 6, 7, 8, 9]
> 删除的值:5
> 删除之后:[1, 2, 3, 4, 6, 7, 8, 9]
- 根据值删除元素:有时候,你不知道要删除元素的所在的位置,如果只知道删除元素的值,可使用
.remove(value)
,格式:list.remove(value)
。注意:.remove()
方法只删除列表中第一个指定的值,如果要删除的值在列表中出现多次,就需要使用列表的.count()方法+循环
进行删除。
```python
num_list = [1,2,3,4,5,6,7,8,6,9]
print('删除之前:{}'.format(num_list))
num_list.remove(6)
print('删除之后:{}'.format(num_list))
```
> 运行结果:
>
> 删除之前:[1, 2, 3, 4, 5, 6, 7, 8, 6, 9]
> 删除之后:[1, 2, 3, 4, 5, 7, 8, 6, 9]
5.组织列表
- 当你创建的列表元素中,元素的排列顺序是无法预测的,因为你并非总能控制用户提供的顺序。你经常需要以特定的顺序呈现信息,有时候,你希望保留列表最初的排列顺序,而有时侯又需要调整排列顺序。在Python中提供了很多组织列表的方式。
- 使用方法.sort() 对列表进行永久性排序
- .sort()方法永久性修改了列表元素的排列顺序。默认是按照升序排列。你可向.sort()方法传递参数 reverse=True,按照降序排列。如果对字母进行排序,会按照ASCII表进行排序。
- 格式:list.sort(reverse=True)
- 使用函数sorted()对列表进行临时排序
- 有时候我们需要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数
sorted()
,默认升序排列,你可以向函数sorted()
传递参数reverse=True
,进行降序排列。 - 格式:
sorted(list,reverse=True)
- 注意:在所有字母不是全部小写时,按字母顺序排列列表要复杂些,决定排列顺序时,有多种解读大写字母的方式。
- 有时候我们需要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数
- 倒着打印列表
- 想要反转列表元素的排列顺序,可使用方法
.reverse()
,⚠️注意:.reverse()
方法是指将列表元素的位置(索引)反转进行排列。此方法也是永久性地修改列表元素的排列顺序,但是你可以恢复到原来的排列顺序,只需要再次使用.reverse()方法即可。 - 格式:
list.reverse()
6. 确定列表的长度
- 有时候我们需要知道列表中有几个元素,函数
len()
可快速获取列表的长度。此方法是从 1 开始计数。此方法往往结合循环使用。 - 格式:
len(list)
7.总结
- 你可理解当使用方法对列表排序,是永久性排序,使用函数对列表排序,是临时性排序。使用方法排序不能直接打印,使用函数排序可直接打印。比如print(list.sort())❌,print(sorted(list))✅。
- 当使用方法改变列表的排列顺序时,不需要将改变顺序存储到变量中,可直接使用方法修改,比如list_num = [1,2,3,4,] list_num1 = list_num.reverse()/sort() ❌ list_num.reverse()/sort() ✅