您的位置:

Python中的List数据结构及常见操作

List是Python中常用的一种数据结构,可以存储多个元素,并且支持在列表中添加、删除、修改、查找等多种操作。

一、创建List

在Python中,可以用方括号来创建一个List:

my_list = [1, 2, 3, 'apple', 'banana', 'orange']
print(my_list)

上面的代码创建了一个包含6个元素的List,其中包括三个整数和三个字符串,输出结果为:

[1, 2, 3, 'apple', 'banana', 'orange']

也可以使用list()函数来创建一个List:

my_list = list(range(5))
print(my_list)

这里使用range()函数生成一个包含0到4数字的序列,再将这个序列转换成List。

二、访问List元素

可以使用下标(从0开始)来访问List的元素:

my_list = [1, 2, 3, 4, 5]
print(my_list[0]) #输出1
print(my_list[3]) #输出4

也可以使用负下标来从列表的末尾开始访问:

my_list = [1, 2, 3, 4, 5]
print(my_list[-1]) #输出5
print(my_list[-3]) #输出3

三、增加、删除元素

1. 增加元素

可以使用append()方法在List的末尾增加一个元素:

my_list = [1, 2, 3]
my_list.append(4)
print(my_list) #输出[1, 2, 3, 4]

也可以使用insert()方法在List中插入一个元素:

my_list = ['apple', 'banana', 'orange']
my_list.insert(1, 'pear') #在下标为1的位置插入元素'pear'
print(my_list) #输出['apple', 'pear', 'banana', 'orange']

还可以使用extend()方法将两个List合并成一个:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1) #输出[1, 2, 3, 4, 5, 6]

2. 删除元素

可以使用remove()方法从List中删除一个指定的元素:

my_list = ['apple', 'banana', 'orange']
my_list.remove('banana')
print(my_list) #输出['apple', 'orange']

也可以使用del关键字从List中删除一个指定下标的元素:

my_list = ['apple', 'banana', 'orange']
del my_list[1]
print(my_list) #输出['apple', 'orange']

四、List切片

可以使用List切片来获取指定范围内的元素:

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[2:6]) #输出[2, 3, 4, 5]
print(my_list[1:8:2]) #输出[1, 3, 5, 7]
print(my_list[5:]) #输出[5, 6, 7, 8, 9]
print(my_list[:-3]) #输出[0, 1, 2, 3, 4, 5, 6]

其中my_list[start:end]表示获取从下标为start的元素到下标为end-1的元素,my_list[start:end:step]还可以指定步长。

五、List排序

可以使用sort()方法对List中的元素进行排序:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print('Sorted list:', my_list)

该方法会直接在原来的List上进行排序。如果想要得到一个新的排序好的List,可以使用sorted()函数:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(my_list)
print('Original list:', my_list)
print('Sorted list:', new_list)

六、List不同之处

Python的List比较特别,有一些常见的数据类型并没有类似的数据结构,比如元组、字典。

和元组相比,List的特点在于可以修改元素。而元组中的元素不可变,所以在需要以某种方式固定不变一系列元素时,需要使用元组。比如二维空间坐标点可以表示为(x, y)形式的元组,不会发生变化。

和字典相比,List的特点在于元素存储的顺序。List中的元素是有序的,可以通过下标访问。而字典中的元素是无序的,需要通过键来访问。