首页Python

Python列表操作技巧

2020年9月9日 19:14846

列表(List)由一系列按特定顺序排列的元素组成,你可以创建由含字母、数字、字符串组成的列表,也可以将任何内容加入列表中,其中的元素之间没有任何关系。在Python中用方括号[]来表示列表,用逗号(,)来分隔其中的元素。

# 这是基本的列表

car = ['Toyota','Honda','BMW','Benz']
print(car)
>>>['Toyota','Honda','BMW','Benz']

访问列表元素

列表是有序集合,要访问列表的任何元素,只需将该元素的索引(索引从0开始计算)、名称告诉Python即可,可以对任何列表元素使用字符串方法。

# 访问列表元素

car = ['Toyota','Honda','BMW','Benz']
print(car[1].title()) # 获取列表中第二个元素,并使用title方法首字母大写
>>>Honda


# 访问列表最后一个元素用(-1)

car = ['Toyota','Honda','BMW','Benz']
print(car[-1])
>>>Benz

修改、添加、删除元素

Python列表大多数都是动态的,这意味着列表创建后,将随着程序的运行对列表操作。

# 修改元素
# 假设有一个汽车列表,其中第二个元素为Honda

car = ['Toyota','Honda','BMW','Benz']
print(car)  # 先打印出来
car[1] = 'Porsche'
print(car)
>>>['Toyota','Porsche','BMW','Benz']  # Honda被修改成Porsche
# 添加元素

# 1.在列表末尾添加元素append()方法
car = ['Toyota','Honda','BMW','Benz']
print(car)  # 先打印以便原始列表
car.append('Porsche')
print(car)
>>>['Toyota','Honda','BMW','Benz','Porsche']

# 2.在列表中插入元素insert()方法
car = ['Toyota','Honda','BMW','Benz']
print(car)
car.insert(0,'Porsche')  # 在列表第一个位置插入元素Porsche
print(car)
>>>['Porsche','Toyota','Honda','BMW','Benz']
# 删除列表元素

# 1.使用del语句删除元素
car = ['Toyota','Honda','BMW','Benz']
del car[1]


# 2.使用pop()方法删除元素,返回被删除的元素

car = ['Toyota','Honda','BMW','Benz']
car.pop(2)
print(car)
>>>['Toyota','Honda','Benz']


# 3.根据值删除元素remove()

car = ['Toyota','Honda','BMW','Benz']
car.remove('Honda')
print(car)
>>>['Toyota','BMW','Benz']

# 注意:remove()方法只删除第一个指定的值,如果要删除的元素可能在列表中出现很多次,就需要使用循环。

列表排序

创建列表时,元素的排序常常是无法预测的,因为你并非总能控制用户提供数据的次序。

# 1.使用sort()函数永久性排序

car = ['Toyota','Honda','BMW','Benz']
car.sort()
print(car)
>>>['BMW', 'Benz', 'Honda', 'Toyota']


# 2.倒着打印列表

car = ['BMW', 'Benz', 'Honda', 'Toyota']
car.reverse()
print(car)
>>>['Toyota', 'Honda', 'Benz', 'BMW']


# 3.sort()函数传递reverse参数

car = ['BMW', 'Benz', 'Honda', 'Toyota']
car.sort(reverse=True)  # reverse默认False
print(car)
>>>['Toyota', 'Honda', 'Benz', 'BMW']

列表长度

# 使用函数len()计算列表长度

car = ['Toyota','Honda','BMW','Benz']
len(car)
>>>4

注意:Python计算列表长度时从1开始

遍历列表

# 使用for循环遍历输出列表所有元素

cars = ['Toyota','Honda','BMW','Benz']
for car in cars:
    print(car) #这里要注意代码块缩进
>>>Toyota
>>>Honda
>>>BMW
>>>Benz

数字列表range()函数

# 1.使用range()函数

for value in range(1,5):
    print(value)
>>>1
>>>2
>>>3
>>>4


# 2.使用range()函数创建数字列表

num = list(range(1,5))
print(value)
>>>[1,2,3,4]


# 3.range()函数指定步长

num = list(range(2,11,2))
print(num)
>>>[2,4,6,8,10]


# 4.使用max、min、sum统计列表
num = list(range(1,11))
max(num)
>>>10
min(num)
>>>1
sum(num)
>>>55

列表解析

num = [value ** 2 for value in range(1,11)]
print(num)

注释:指定num为列表名,方括号里面定义一个表达式,用于生成要存储到列表中的值。在这个示例中,表达式为value ** 2,计算平方值。接下来编写一个for循环,用于给表达式提供值,请注意,这里的for循环没有冒号。

列表切片

要创建切片,可指定要使用的第一个元素索引和最后一个元素的索引加1,与range()函数一样,Python在到达指定的第二个索引前面的元素后停止。

# 要输出列表前三个元素,需要指定索引0:3,这将分别输出0、1和2的元素

cars = ['Toyota','Honda','BMW','Benz']
print(cars[0:3])
>>>['Toyota', 'Honda', 'BMW']


# 如果没有指定第一个索引,Python将自动从列表开头开始

cars = ['Toyota','Honda','BMW','Benz']
print(cars[:2])
>>>['Toyota', 'Honda']


# 如果没有指定第二个索引,Python将切片执行到列表末尾

cars = ['Toyota','Honda','BMW','Benz']
print(cars[1:])
>>>['Honda', 'BMW', 'Benz']


# 输出列表倒数3个元素

cars = ['Toyota','Honda','BMW','Benz']
print(cars[-3:])
>>>['Honda', 'BMW', 'Benz']


# 遍历切片

cars = ['Toyota','Honda','BMW','Benz']
from items in cars[:2]:
    print(items.title())
>>>Toyota
>>>Honda

复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引[:]。Python将创建一个从头开始,终止于最后一个元素的切片,这样就可以复制整个列表。

# 复制列表

cars = ['Toyota','Honda','BMW','Benz']
items = cars[:]
print(itmes)
>>>['Toyota', 'Honda', 'BMW', 'Benz']