📅  最后修改于: 2020-07-07 04:18:58             🧑  作者: Mango
列表就像用其他语言声明的数组一样。列表不一定总是同质的,这使其成为Python中最强大的工具。单个列表可能包含数据类型,例如整数,字符串以及对象。列表是可变的,因此在创建后也可以对其进行更改。
Python中的列表是有序的,并且有一定数量。根据确定的序列对列表中的元素进行索引,并使用0作为第一个索引来完成列表的索引。列表中的每个元素在列表中都有其确定的位置,这允许复制列表中的元素。
注意: 列表是用于保留数据序列并对其进行进一步迭代的有用工具。
只需将序列放在方括号[]中即可创建Python中的列表。与Sets不同,list不需要内置函数来创建。
注: 与Sets不同,列表可能包含可变元素。
# Python代码,展示list的创建
# 创建list
List = []
print("初始化空list: ")
print(List)
# 使用string,创建list
List = ['芒果文档']
print("\n使用string,创建list : ")
print(List)
# 使用多个值创建list
List = ["芒果", "文档"]
print("\n使用多个值创建list : ")
print(List[0])
print(List[1])
# 创建多维度list
# 在一个list内,嵌套list
List = [['芒', '果'] , ['文档']]
print("\n多维度list : ")
print(List)
输出:
初始化空list:
[]
使用string,创建list
['芒果文档']
使用多个值创建list : 芒果 文档 多维度list : [['芒', '果'] , ['文档']]
列表可能包含具有不同位置的重复值,因此,可以在创建列表时将多个不同或重复的值作为序列传递。
# Python代码,创建list,使用多个值
# 并且包含重复值
List = [1, 2, 4, 4, 3, 3, 3, 6, 5]
print("\n使用多个值的List: ")
print(List)
# 创建list,使用多个数据类型
# 有整型数字和字符串string
List = [1, 2, '芒果', 4, '芒果', 6, '文档']
print("\n使用多个数据类型的List: ")
print(List)
输出:
使用多个值的List:
[1, 2, 4, 4, 3, 3, 3, 6, 5]
使用多个数据类型的List:
[1, 2, '芒果', 4, '芒果', 6, '文档']
append()
方法可以使用内置append()
函数,将元素添加到列表中。使用append()
方法一次只能将一个元素添加到列表中,如果使用该方法添加多个元素append()
,则使用循环。由于元组是不可变的,因此也可以使用append方法将元组添加到列表中。与集合Set不同,列表也可以使用append()
方法添加到现有列表中。
# Python代码,展示如何对list进行添加操作
# 创建list
List = []
print("初始化空list: ")
print(List)
# 对list进行添加元素
List.append(1)
List.append(2)
List.append(4)
print("\n添加3个新元素的list: ")
print(List)
# 使用迭代器对list进行元素添加
for i in range(1, 4):
List.append(i)
print("\n循环了1-3之后的list: ")
print(List)
# 给list添加元组Tuples
List.append((5, 6))
print("\n添加元组Tuples之后的list: ")
print(List)
# 给list添加一个list
List2 = ['芒果', '文档']
List.append(List2)
print("\n添加list之后的list: ")
print(List)
输出:
初始化空list:
[]
添加3个新元素的list:
[1, 2, 4]
循环了1-3之后的list:
[1, 2, 4, 1, 2, 3]
添加元组Tuples之后的list:
[1, 2, 4, 1, 2, 3, (5, 6)]
添加list之后的list:
[1, 2, 4, 1, 2, 3, (5, 6), ['芒果', '文档']]
insert()
方法append()
方法仅适用于在列表末尾添加元素,而对于所需位置的添加元素,则使用insert()
方法。与append()
仅需要一个参数不同,insert()
方法需要两个参数(位置,值)。
# Python代码,展示如何对list进行添加操作
# 创建list
List = [1,2,3,4]
print("初始化list: ")
print(List)
# 在特定位置插入元素,使用insert()方法
List.insert(3, 12)
List.insert(0, '芒果')
print("\n使用insert()方法添加元素之后的list: ")
print(List)
输出:
初始化list:
[1, 2, 3, 4]
使用insert()方法添加元素之后的list:
['芒果', 1, 2, 3, 12, 4]
extend()
方法除append()
和insert()
方法外,还有一种方法用于元素添加:extend()
。该方法用于在列表末尾同时添加多个元素。注: append()和extend()方法只能在末尾添加元素。
# Python代码,展示如何对list进行添加操作
# 创建list
List = [1,2,3,4]
print("初始化list: ")
print(List)
# 在list末尾,添加多个元素,且使用extend()方法
List.extend([8, '芒果', '文档'])
print("\n使用extend()方法添加多个元素后的list: ")
print(List)
输出:
初始化list:
[1, 2, 3, 4]
使用extend()方法添加多个元素后的list:
[1, 2, 3, 4, 8, '芒果', '文档']
为了访问列表项,请参考索引号。使用索引运算符[]访问列表中的项。索引必须为整数。嵌套列表通过嵌套索引访问。
# Python代码,展示如何从list当中获取元素
# 创建多个值得list
List = ["芒果", "文", "档"]
# 使用index索引,获取list中元素
print("从list中获取一个元素")
print(List[0])
print(List[2])
# 使用list嵌套,创建一个多维度list
List = [['芒果', '文'] , ['档']]
# 使用index索引,从多维度list中获取元素
print("从多维度list中获取元素")
print(List[0][1])
print(List[1][0])
输出:
从list中获取一个元素
芒果
档
从多维度list中获取元素
文
档
在Python中,负序索引表示从数组末尾开始的位置。不必像这样计算偏移量:List[len(List)-3]
,只需这样List[-3]
就足够了。负索引表示从末尾开始,-1表示最后一个项目,-2表示倒数第二个项目,依此类推。
List = [1, 2, '芒果', 4, 'For', 6, '芒果']
# 使用负索引,访问list的元素
print("使用负索引,访问list的元素")
# 打印最后一个元素
print(List[-1])
# 打印倒数第三个元素
print(List[-3])
输出:
使用负索引,访问list的元素
芒果
For
remove()
方法可以使用内置remove()
函数从列表中删除元素,但是如果元素不存在于集合中,则会发生错误。Remove()方法一次只删除一个元素,要删除元素范围,则使用迭代器。remove()
方法会删除指定的项目。
注:列表中的Remove方法将仅删除搜索到的元素的第一个匹配项。
# Python代码,展示使用remove删除元素
# 创建列表
List = [1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12]
print("列表初始化: ")
print(List)
# 使用Remove()方法删除元素
List.remove(5)
List.remove(6)
print("\n删除2个元素之后的list: ")
print(List)
# 使用迭代器删除list元素
for i in range(1, 5):
List.remove(i)
print("\n删除一系列元素后的list: ")
print(List)
输出:
列表初始化:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
删除2个元素之后的list:
[1, 2, 3, 4, 7, 8, 9, 10, 11, 12]
删除一系列元素后的list:
[7, 8, 9, 10, 11, 12]
pop()
方法Pop()
函数也可以用于从list中删除元素并返回删除后的结果,但是默认情况下,它仅删除list中的最后一个元素,如果想从List的特定位置删除元素,该元素的索引需要作为参数传递给pop()即可
。
List = [1,2,3,4,5]
# 使用pop方法删除元素
List.pop()
print("\n用pop删除元素之后的list: ")
print(List)
# 使用pop在特定位置删除元素
List.pop(2)
print("\n使用pop在特定位置删除元素后的list: ")
print(List)
输出:
用pop删除元素之后的list:
[1, 2, 3, 4]
使用pop在特定位置删除元素后的list:
[1, 2, 4]
在Python List中,有多种方法可以打印包含所有元素的整个List,但是要打印特定范围的元素,我们可以使用Slice操作。在列表上使用冒号(:)执行切片操作。要从开始到结束的范围打印元素,请使用[:Index],要从最终位置开始计算索引,使用[:-Index]打印元素。要打印范围内的元素,请使用[开始索引:结束索引]。此外,要以相反的顺序打印整个列表,请使用[::-1]。
注:要从最后的元素开始打印列表元素,请使用负索引。
# Python代码,展示切片操作
# Creating a List
List = ['G','E','E','K','S','F',
'O','R','G','E','E','K','S']
print("初始化list: ")
print(List)
# 使用切片打印list
Sliced_List = List[3:8]
print("\n在3-8范围内打印list: ")
print(Sliced_List)
# 从一个开始的index,打印至list末尾
Sliced_List = List[5:]
print("\n从第5个元素到最后一个元素的list: ")
print(Sliced_List)
# 使用切片,打印list中所有元素
Sliced_List = List[:]
print("\n使用切片,打印list中所有元素 : ")
print(Sliced_List)
输出:
初始化list:
['G', 'E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
在3-8范围内打印list:
['K', 'S', 'F', 'O', 'R']
从第5个元素到最后一个元素的list:
['F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
使用切片,打印list中所有元素 :
['G', 'E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
负索引列表切片
# 初始化list
List = ['G','E','E','K','S','F',
'O','R','G','E','E','K','S']
print("初始化list: ")
print(List)
# 打印list,使用预定义的index
Sliced_List = List[:-6]
print("\n从list开头至倒数第6个元素的切片: ")
print(Sliced_List)
# 使用负索引进行切片
Sliced_List = List[-6:-1]
print("\n使用负索引进行切片并打印-6到-1的结果:")
print(Sliced_List)
# 反向打印一个list
Sliced_List = List[::-1]
print("\n反向打印一个list: ")
print(Sliced_List)
输出:
初始化list:
['G', 'E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
从list开头至倒数第6个元素的切片:
['G', 'E', 'E', 'K', 'S', 'F', 'O']
使用负索引进行切片并打印-6到-1的结果
['R', 'G', 'E', 'E', 'K']
反向打印一个list:
['S', 'K', 'E', 'E', 'G', 'R', 'O', 'F', 'S', 'K', 'E', 'E', 'G']
函数 | 描述 |
---|---|
Append() | 将元素添加到列表的末尾 |
Extend() | 将列表的所有元素添加到另一个列表 |
Insert() | 在定义的索引处插入项目 |
Remove() | 从列表中删除一个项目 |
Pop() | 删除并返回给定索引处的元素 |
Clear() | 从列表中删除所有项目 |
Index() | 返回第一个匹配项的索引 |
Count() | 返回作为参数传递的项目数 |
Sort() | 以升序对列表中的项目进行排序 |
Reverse() | 颠倒列表中项目的顺序 |
copy() | 返回列表的副本 |
函数 | 描述 |
---|---|
reduce() | 将在其参数中传递的特定函数应用于所有存储中间结果的列表元素,并且仅返回最终求和值 |
sum() | 汇总列表中的数字 |
ord() | 返回一个整数,该整数表示给定Unicode字符的Unicode代码点 |
cmp() | 如果第一个列表“大于”第二个列表,则此函数返回1 |
max() | 返回给定列表的最大元素 |
min() | 返回给定列表的最小元素 |
all() | 如果所有元素都为true或list为空,则返回true |
any() | 如果列表中的任何元素为true,则返回true。如果列表为空,则返回false |
len() | 返回列表的长度或列表的大小 |
enumerate() | 返回列表的枚举对象 |
accumulate() | 将在其参数中传递的特定函数应用于所有list元素,将返回包含中间结果的列表 |
filter() | 测试列表中的每个元素是否正确 |
map() | 在将给定函数应用于给定可迭代项的每一项之后,返回结果列表 |
lambda() | 该函数可以具有任意数量的参数,但只能有一个表达式,该表达式将被求值并返回。 |