个性化阅读
专注于IT技术分析

Python数据结构之列表list用法和原理全解

在上一节中,我们学习了Python字符串的使用和操作,之前还讨论过的python数据结构包括:python集合set的用法以及Python字典(Dictionary)的用法,其中集合set和字典dictionary都是基于哈希表实现的,因此它们都是无序的,但是因为使用了哈希表,所以查找速度比较快,本文讨论的列表list是有序的。

和其它语言一样,列表就像数组一样。列表不必总是同构的,这使得它成为Python中最强大的工具。单个列表可以包含整数、字符串和对象等数据类型。并且,列表是可变的,因此即使在创建之后也可以更改它们。

Python中的列表是有序的,并且有一个明确的计数。列表中的元素根据确定的序列建立索引,列表的索引以0作为第一个索引,列表中的每个元素在列表中都有其特定的位置,允许复制列表中的元素,每个元素都有其独特的位置和确切性。

注意:列表是保存数据序列并对其进行进一步迭代的有用工具。

1、创建一个列表list

Python中的列表可以通过将序列放在方括号[]中来创建,与set不同,list不需要内置函数来创建list。

注意:与set不同,list可包含可变元素。

# 创建一个列表
List = []
print("初始空列表: ")
print(List)

# 使用字符串创建列表
List = ['La Oreja De Van Gogh']
print("\n字符串列表: ")
print(List)

# 使用多个值创建列表
List = ["La Oreja", "De", "Van Gogh"]
print("\n包含多个值的列表: ")
print(List[0])
print(List[2])

# 创建多维列表(通过在列表中嵌套列表)
List = [['La Oreja', 'De'], ['Van Gogh']]
print("\n多维列表: ")
print(List) 

创建具有多个不同或重复元素的列表:一个列表可能包含具有不同位置的重复值,因此可以在创建列表时按顺序传递多个不同或重复的值。

# 使用数字(具有重复的值)创建列表
List = [1, 2, 4, 4, 3, 3, 3, 6, 5]
print("\n数字列表: ")
print(List)

# 使用混合类型的值(包括数字和字符串)创建列表
List = [1, 2, 'La Oreja', 4, 'De', 6, 'Van Gogh']
print("\n使用混合值的列表: ")
print(List) 

2、添加元素到列表

使用append()函数添加元素。可以使用内置的append()函数将元素添加到列表中。通过使用append()函数一次只能向列表中添加一个元素,可以使用循环调用append()函数添加多个元素。还可以使用append函数将元组添加到列表中,因为元组是不可变的。与集合不同,还可以使用append()方法将一个列表添加到现有列表中。

# 创建一个列表
List = []
print("初始空列表: ")
print(List)

# 添加元素到列表
List.append(1)
List.append(2)
List.append(4)
print("\n添加3个元素后的列表: ")
print(List)

# 使用迭代循环添加元素到列表
for i in range(1, 4):
    List.append(i)
print("\n添加元素后的列表: ")
print(List)

# 向列表中添加元组
List.append((5, 6))
print("\n添加元组后的列表: ")
print(List)

# 添加列表到一个列表
List2 = ['De', 'Van Gogh']
List.append(List2)
print("\n添加列表后的列表: ")
print(List) 

使用insert()函数添加元素。append()函数只适用于在列表末尾添加元素,对于在所需位置添加元素,则使用insert()函数。不像append()只接受一个参数,insert()方法需要两个参数(位置、值)。

# 创建一个列表
List = [1, 2, 3, 4]
print("初始列表: ")
print(List)

# 在特定位置添加元素(使用插入方法)
List.insert(3, 12)
List.insert(0, 'De Oreja')
print("\n执行插入操作后的列表: ")
print(List) 

使用extend()函数添加元素。除了append()和insert()函数之外,还有一个用于添加元素的函数extend(),该方法用于在列表末尾同时添加多个元素。

# 创建一个列表
List = [1, 2, 3, 4]
print("初始列表: ")
print(List)

# 在最后向列表中添加多个元素(使用extend函数)
List.extend([8, 'De', 'Van Gogh'])
print("\n执行extend操作后的列表: ")
print(List)

3、访问列表中的元素

访问列表项使用索引号。使用索引操作符[]访问列表中的项,索引必须是整数。嵌套列表使用嵌套索引访问。

# 创建一个有多个值的列表
List = ["La Oreja", "De", "Van Gogh"]

# 使用索引号从列表中访问元素
print("访问列表元素")
print(List[0])
print(List[2])

# 创建多维列表(通过在列表中嵌套列表)
List = [['La Oreja', 'De'], ['Van Gogh']]

# 使用索引号从多维列表中访问元素
print("访问多维列表中的元素")
print(List[0][1])
print(List[1][0])

使用负索引。在Python中,负序列索引表示数组末尾的位置,不必像List[len(List)-3]那样计算偏移量,只写List[-3]就足够了。负索引是指从末尾开始,-1指最后一项,-2指倒数第二项,以此类推。

List = [1, 2, 'La Oreja', 4, 'De', 6, 'Van Gogh']

#  使用负索引访问元素

# 最后一个元素
print(List[-1])

# 倒数第三个元素  
print(List[-3]) 

4、删除列表中的元素

使用remove()函数。可以使用内置的remove()函数从列表中删除元素,但是如果集合中不存在元素,则会出现错误。该函数的作用是:删除指定的项。

注意:列表中的删除方法只会删除搜索元素的第一个匹配项。

List = [1, 2, 3, 4, 5, 6,
        7, 8, 9, 10, 11, 12]
print(List)

# 删除元素
List.remove(5)
List.remove(6)
print(List)

# 迭代删除
for i in range(1, 5):
    List.remove(i)
print(List) 

使用pop()函数删除元素。Pop()函数也可以用来从集合中删除和返回一个元素,但是默认情况下它只删除集合的最后一个元素,为了从列表的特定位置删除元素,元素的索引作为参数传递给Pop()方法。

List = [1, 2, 3, 4, 5]

List.pop()
print(List)

List.pop(2)
print(List) 

5、列表的切片

在Python列表中,有多种方法可以打印包含所有元素的整个列表,但是为了打印列表中特定范围的元素,我们使用切片操作。使用冒号(:)对列表执行切片操作。打印元素从开始使用[:索引],打印元素从最终,打印元素从特定的索引到最终使用(索引:),打印元素范围内,使用(开始索引:结束索引),打印整个列表使用切片操作使用[:]。此外,要以相反的顺序打印整个列表,请使用[::-1]。

注意从后端打印列表元素,使用负索引。

List = ['A', 'B', 'C', 'D', 'E', 'F',
        'G', 'A', 'W', 'E', 'X', 'T', 'A']
print(List)

Sliced_List = List[3:8]
print(Sliced_List)

Sliced_List = List[5:]
print(Sliced_List)

Sliced_List = List[:]
print(Sliced_List)
赞(0) 打赏
未经允许不得转载:srcmini » Python数据结构之列表list用法和原理全解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏