列表
一,列表的定义
列表是其中最常用的数据结构,列表通过方括号括起、逗号分隔的一组值得到,一个列表可以包含不同类型的元素但通常使用时各个元素类型相同。
list = [1, 2, 3]
二,列表常用方法
- list.append(x) :在列表的末尾添加一个元素。相当于a[len(a):] =[x]
list = [1, 2, 3] list.append(4) print(list)
- list.insert(i,x) :在给定的位置插入一个元素。第一个参数是要插入的元素的索引, 以a.insert(0,x)插入列表头部,a.insert(len(a),x) 等同于a.append(x)
list = [1, 2, 3]
list.insert(0, 4)
print(list)
- list.remove(x) :移除列表中第一个值为x的元素。如果没有这样的元素, 则抛出ValueError异常
list = [1, 2, 3]
list.remove(1)
print(list)
- list.pop([i] ) :删除列表中给定位置的元素并返回它。如果没有给定位置, a.pop()将会删除并返回列表中的最后一个元素
list = [1, 2, 3]
y = list.pop(0)
print(y)
print(list)
- list.sort(key=None, reverse=False) :对列表中的元素进行排序(参数可用于自定义排序,解释请参见sorted())
list = [1, 2, 3, 5, 0]
list.sort(reverse=False)
print(list)
- list.reverse() :反转列表中的元素
list = [1, 2, 3, 5, 0]
list.reverse()
print(list)
- list.clear() 删除列表中所有的元素。相当于del a[:]
list = [1, 2, 3, 5, 0]
list.clear()
print(list)
- list.extend(iterable) :使用可迭代对象中的所有元素来扩展列表。相当于a[len(a) :] =iterable
list = [1, 2, 3, 5, 0]
list.extend([7, 8, 9])
print(list)
- list.index(x[, start[, end] ] ):返回列表中第一个值为x的元素的从零开始的索引。如果没有这样的元素将会抛出ValueError异常。可选参数start和end是切片符号,用于将搜索限制为列表的特定子序列返回的索引是相对于整个序列的开始计算的,而不是start参数
list = [1, 2, 3, 5, 0]
y = list.index(3)
print(y)
- list.count(x) :返回元素x在列表中出现的次数
list = [1, 2, 3, 5, 0, 3]
y = list.count(3)
print(y)
- list.copy() :返回列表的一个浅拷贝。相当于a[:]
list = [1, 2, 3, 5, 0, 3]
y = list.copy()
print(y)
注意:
insert,remove或者sort方法,只修改列表, 没有打印出返回值——它门返回默认值None。这是Python中所有可变数据结构的设计原则。并非所有数据或可以排序或比较(字符串和数字等)
三,列表推导式
1,概念
列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列
2,使用
(1)单个for循环的列表推导式
例如:如果我们想生成一个1-3平方列表, 比如[1, 4, 9] , 使用for循环应该怎么写,使用列表生成式又应该怎么写呢?
for循环:
list = []
for i in range(1, 4):
list.append(i**2)
print(list)
列表推导式:
list = [i**2 for i in range(1, 4)] print(list)
(2)if条件的列表推导式
例如:如果我们想生成一个2-3平方列表, 比如[4, 9] , 使用for循环应该怎么写,使用列表生成式又应该怎么写呢?
for循环:
list = []
for i in range(1, 4):
if i != 1:
list.append(i**2)
print(list)
列表推导式:
list = [i**2 for i in range(1, 4) if i != 1]
print(list)
(3)嵌套循环的列表推导式
例如:如果我们想生成一个列表, 比如[1, 2, 3, 2, 4, 6, 3, 6, 9] , 使用for循环应该怎么写,使用列表生成式又应该怎么写呢?
for循环:
list = []
for i in range(1, 4):
for j in range(1, 4):
list.append(i*j)
print(list)
列表推导式:
list = [i*j for i in range(1, 4) for j in range(1, 4)]
print(list)

浙公网安备 33010602011771号