首页技术文章正文

python有哪些基础操作?怎样添加、删除、修改列表元素?

更新时间:2021-07-01 来源:黑马程序员 浏览量:

Python列表是一个可变的序列,它没有长度的限制,可以包含任意个元素。列表的长度和元素都是可变的,开发人员可以自由地对列表中的数据进行各种操作,包括添加、删除、修改元素。

Python列表的表现形式类似于其它语言中的数组,列表中的元素使用“[]”包含,各元素之间使用英文逗号分隔,例如:

>>> list_one = []                          # 创建空列表
>>> list_one
[]
>>> list_two = [1, 10, 55, 20, 6]          # 列表元素的类型均是整型
>>> list_two
[1, 10, 55, 20, 6]
>>> list_thr = [10, 'word', True, [6, 1]]  # 列表中元素的类型不同
>>> list_thr
[10, 'word', True, [6, 1]]

通过list()函数可以将已有的元组或字符串转换为列表,例如:

>>> words = 'Python'   
>>> list(words)                  # 将字符串转换为列表
['P', 'y', 't', 'h', 'o', 'n']
>>> tuple_demo = (1, 3, 5, 7, 9) 
>>> list(tuple_demo)             # 将元组转换为列表
[1, 3, 5, 7, 9]

使用循环可以对列表中的元素进行遍历操作,基本方式如下:

for 循环变量 in 列表:
    语句块

例如,对列表['P', 'y', 't', 'h', 'o', 'n']执行遍历操作,具体示例如下:

>>> for char in ['P', 'y', 't', 'h', 'o', 'n']:    # 遍历列表的元素
...     print(char)
...
P
y
t
h
o
n

列表支持索引和切片操作。例如,修改列表[11,22,33]中的数据,代码如下所示:

>>> nums = [11, 22, 33]  
>>> nums[0] = 55          # 将列表中的第0项修改为55
>>> nums
[55, 22, 33]         
>>> nums[0:2] = [0, 1]    # 将列表中的第0项修改为0,第1项修改为1
>>> nums
[0, 1, 33]
>>> list1 = [5, 6]
>>> nums += list1         # nums列表添加list1列表的元素
>>> nums
[0, 1, 33, 5, 6]

以上代码中先定义了一个列表nums,之后对列表执行替换操作,即将列表的第0项数据替换为55,将列表中的第0项、第1项数据分别替换为[0, 1],因为要替换的数据个数与被替换的数据个数相同,所以列表nums的长度没有发生变化。

当使用一个列表的元素改变另一个列表的数据时,Python并不要求两个列表的长度相同,但是要遵循“多增少减”的原则,例如:

>>> nums[1:5] = [11, 7]   # nums[1:5]的长度比[11, 7]大
>>> nums
[0, 11, 7]
>>> nums[0:2] = [10, 5, 0] # nums[0:2]的长度比[10, 5, 0]小
>>> nums
[10, 5, 0, 7]

以上代码的子序列nums[1:5]中包含了4个元素,使用[11,7] 重新对其赋值时只给了两个元素,此时列表nums的元素减少了2个;同样,子序列nums[0:2]中包含两个元素,使用[10, 5, 0]重新对其赋值时给出了3个元素,此时列表nums的元素增加了1个。由此可知,使用一个列表给另一个列表赋值也可以实现列表的增加和删除操作。

Python为列表类型提供了一些常见操作,具体如表1所示。

表1 列表的常见操作

常见操作说明
len(s)                                  计算序列s的长度(元素个数)                                                     
min(s)返回序列s中的最小元素
max(s)返回序列s中的最大元素
list.append()在列表list的末尾添加元素x
list.extend()在列表list中添加列表lx的元素,与+=功能相同
list.insert()在列表list索引为i的元素之前插入元素x
listpop()取出并删除列表list中索引为i的元素x
List.remove()删除列表list中第一次出现的元素x
list.reverse()将列表list的元素反转
list.clear()删除列表list中的所有元素
list.copy()生成新列表,并拷贝列表list中的所有元素
list.sort()将列表list中的元素排序


列表和数组的区别

接触过其它语言的读者可能听说过数组这个类型,比如C语言,在很多编程语言中都使用数组存储一组数据,而少数的编程语言采用列表这个类型。数组与列表非常类似,但是并不完全一样,它们两个主要有以下区别:

(1) 数组在创建时需要分配大小,数组的大小是固定的,只能容纳有限的元素。列表则没有预先分配大小的要求,可以在使用的过程中动态地插入任意数量的元素。

(2) 数组和列表都可以存储任意类型的元素,但是数组中要求元素的类型必须是一样的,要么都是数字类型,要么都是字符串或其它类型。列表则没有这个要求,它可以存储不同整数、浮点数、字符串、甚至列表。




猜你喜欢:

Python元组和列表的区别有哪些?什么情况下用元组

Python列表中常用方法有哪些?

Python如何去除列表重复元素?

黑马程序员Python+大数据培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!