Python——列表基础语法
程序员文章站
2023-12-24 15:23:03
列表相当于其他语言中的数组,其重要性不言而喻,所以熟练掌握Python中的列表至为重要。 ......
字符串列表
说明:
列表相当于其他语言的数组。其定义举例如下:
name = ['honda', 'yamaha', 'suzuki']
列表的索引从0开始,也可以用-1表示最后一项,而-2表示倒数第二项,例如:
print(name[0]) # 'honda' print(name[-1]) # 'suzuki'
方法和函数:
- append():从列表的最后位置插入新的元素
- insert():在列表的任意位置添加新元素,为此需要提供新元素的索引和值
name.append('ducati') # ['honda', 'yamaha', 'suzuki', 'ducati'] name.insert(1, 'ducati') # ['honda', 'ducati', 'yamaha', 'suzuki']
- del:如果知道要删除的元素的索引,可以用del语言删除该元素,删除后的元素无法再访问
- pop():无参数时删除列表末尾的元素,并返回该元素。相当于弹出栈顶元素;有参数时,弹出以该参数作为索引的元素,并返回该元素
- del语法删除的元素无法再被访问,而pop()函数可以返回被删除的元素
-
del name(1) # ['honda', 'suzuki'] popped_motorcycle = motorcycles.pop(1) print(popped_motorcycle) # 'yamaha'
- remove():根据值删除列表中的第一个值
name.remove('yamaha') # ['honda', 'suzuki']
- sort():排序,sort(reverse=True)将以方法相反的方向排序
- 函数sorted()排序,sorted(reverse=True)反向排序
- 不同点:方法sort()将改变原列表的元素位置,而函数sorted()返回一个新的已经排好序的列表,原列表中的元素位置没有改变
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(sorted(cars, reverse=True)) print(cars) cars.sort() print(cars)
['toyota', 'subaru', 'bmw', 'audi'] ['bmw', 'audi', 'toyota', 'subaru'] ['audi', 'bmw', 'subaru', 'toyota']
- reverse()反转列表元素的排列顺序,第一个放到最后一个,如此类推
- 函数len()返回列表的长度
数值列表
可以使用for循环遍历列表
cars = ['bmw', 'audi', 'toyota', 'subaru'] for car in cars: print(car.title())
使用函数range()可以生成一系列的数字,例如range(1, 10)将生成1到9之间的数字,注意该系统数字不包括range()最后一个参数所指定的数值。由上可知,C语言中的for(int i = 0; i < 10; i++)
可以改成python中的for index in range(0, 10):
使用range()时,还可以创建步长,例如创建一个以2开始,步长为2的列表
even_numbers = list(range(2,11,2)) print(even_numbers) # [2, 4, 6, 8, 10]
对数值列表可以使用mix,max,sum等函数来计算该列表的最小值、最大值和总和
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] >>> min(digits) 0 >>> max(digits) 9 >>> sum(digits) 4
列表解析
可以通过列表解析快速的创建一个需要通过计算而形成的列表,例如包含1~10的平方列表
squares = [value**2 for value in range(1, 11)] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
注意:for语句后面不要加冒号(:)
切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。例如:
players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[0:3]) # ['charles', 'martina', 'michael']
和range()函数一样,切片处理的元素包含第一个参数指定的索引,不包含第二个参数指定的索引。如果省略第一个参数,表示从头切片,上例也可以表示为players[:3],如果省略第二个参数,表示从第一个参数指定索引开始提取出到列表末尾的所有元素。
也可以使用负数表示从后切片,例如:
players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[-3:]) # ['michael', 'florence', 'eli']
复制列表
使用同时省略开始索引和结束索引的切片来复制列表。这样将复制出两份独立的列表,如果直接将原列表赋值给新的列表,两个变量将指向同一个列表
my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods[:] my_foods.append('cannoil') friend_foods.append('ice sream') print("My favorite foods are:") print(my_foods) print("\nMy friend's favorite foods are:") print(friend_foods) # 输出 # My favorite foods are: # ['pizza', 'falafel', 'carrot cake', 'cannoil'] # My friend's favorite foods are: # ['pizza', 'falafel', 'carrot cake', 'ice sream']
my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods my_foods.append("cannoil") print(my_foods) print(friend_foods) # 输出 # ['pizza', 'falafel', 'carrot cake', 'cannoil'] # ['pizza', 'falafel', 'carrot cake', 'cannoil']