列表list
列表是由一系列按特定顺序排列的元素组成。由于列表中包含多个元素,建议给列表指定一个表示复数的名称。
在Python中,用**[]表示列表,并用逗号**来分隔其中的元素
实例:people=["Mike","Jane","Bruce","Kobe"]
访问列表元素
可以用print()输出列表内容,如要输出列表list内容:print(list)
访问列表元素与访问数组元素相似,如要访问列表list中的第一个元素:print list[0]
Python为访问列表最后一个元素提供了一种特殊的语法,即将索引指定为-1,便可以访问列表的最后一个元素。
修改列表元素
假设现有列表people=["Mike","Jane","Bruce","Kobe"]
在列表中添加元素
我们可以使用以下几种方式添加元素:
-
在列表末尾添加元素King
people.append("King") -
在列表中插入元素Queen
people.insert(2,"Queen"),其中的2表示索引位置
在列表中删除元素
我们可以使用以下几种方式删除元素:
-
根据索引位置删除元素
del people[1],表示删除第2号元素 -
删除列表末尾的元素
popped_ele=people.pop(),pop()默认删除列表的最后一个元素,但是我们也可以指定索引位置删除指定元素。并且pop()的返回值是被删除元素的值。 -
根据值删除元素
people.remove("Kobe"),该方法会删除指定内容的元素。但是该方法只会删除列表中第一个匹配该值的元素,如果要删除的值在列表中出现多次,就需要使用循环来做到多次删除。
组织列表
假设现有列表cars = ['bmw', 'audi', 'toyota', 'subaru']
对列表进行永久排序
使用方法sort(),可以对列表中的元素进行永久性排序
cars.sort() #按照字母顺序排列列表
cars.sort(reverse=True) #按照字母顺序反向排列
对列表进行临时排序
使用函数sorted(),可以对列表中的元素进行排序,但是不会改变列表的原来顺序。
sorted(cars) #临时排序列表,不改变列表内容
sorted(cars,reverse=True) #反向临时排序列表
反转列表
cars.reverse(),该方法会反转列表,并且是永久性的操作。如果要恢复原来的顺序,只需要在使用一次reverse()即可。
取得列表长度
length = len(cars),通过该方法可以获得列表cars的长度。
遍历列表
通过使用for循环,可以重复地处理列表中的元素。
cars = ['bmw', 'audi', 'toyota', 'subaru']
for car in cars: #从列表cars中取出一个元素,并将其存储在变量car中
print(car) #可以在for循环内部对元素执行多种操作
在for循环后面,每个缩进的代码行都是循环代码的一部分。
在python中,利用缩进来判断代码行与前一个代码行的关系。要避免不必要的缩进所带来的语法错误。
创建数值列表
关于创建数值列表以下几个技巧:
使用函数range()
range()可以帮助你生成一系列的数字。
例如,我们想要生成1~5之内的数字,即1,2,3,4,那么就可以使用range(1,5)来实现。
我们还可以指定数字步长,比如我们想要生成1,3,5,那么就可以这般使用range:range(1,6,2),第三个参数2表示了步长
使用函数list()
list()会根据指定的参数返回一个列表。因此我们可以将list()与range()进行结合,来生成一个数字列表。实例如下:
numbers=list(range(1,6)),生成列表numbers=[1,2,3,4,5]
几个常用的统计函数
- min(numbers),输出列表numbers内元素的最小值
- max(numbers),输出列表numbers内元素的最大值
- sum(numbers),将列表numbers内元素进行加和
列表解析
列表解析 将for循环和创建新元素的代码合并成一行,并自动附加新元素。
假设我们要创建列表squares=[1, 4, 9, 16, 25, 36, 49, 64, 81, 100],有以下两种方式:
#方法1
squares=[]
for value in range(1,11):
squares.append(value**2)
print(squares)
#方法2,列表解析
squares=[value**2 for value in range(1,11)]
print(squares)
切片
Python将列表的子集称为切片。要创建切片,可指定要使用的第一个元素和最后一个元素的索引。
假设现有列表players = ['charles', 'martina', 'michael', 'florence', 'eli'],则切片的使用方法如下:
print(playres[1:3]) #打印索引位置为1~2的元素
print(players[1:]) #打印索引位置为1~-1的元素(-1表示最后一个元素)
print(players[:3]) #打印索引位置0~2的元素
通过将切片与for循环进行配合,可以帮助我们遍历列表中的部分元素
for player in players[:3]:
print(player.title()) #遍历索引位置0~2的元素并打印
通过切片,我们还可达到复制列表的效果:
players2=players[:] #利用切片,将列表players的元素复制到players2
########错误的复制列表的方法########
players3=players #直接赋值,会导致players3与players同时指向一个列表,这是不正确的列表复制方法
元组tuple
存储常量元素的列表,称为元组。试图修改元组的元素会导致错误。
元组与列表的区别在于:元组使用的是小括号,列表使用的是中括号。并且元组也是通过索引访问元素。
虽然修改元组的元素会触发错误,但是我们可以通过让元组变量重新指向一个新的元组来达到修改元组的目的。
元组的创建与使用如下所示:
const_numbers=(1,20,40) #创建元组const_numbers
for const_number in const_numbers:
print(const_number) #遍历元组
const_numbers=(2,30,50) #元组重新赋值,修改了元组变量指向内容