1. 列表
-
列表创建-
语法:listName = [element 1, element 2, element n] -
其中,
listName表示列表的名称,可以是符合 Python 命名规则的标识符: "element1,element 2, element n" 表示列表中的元素,个数没有限制。并且只要是 Python 支持的数据类型就可以。
num = [7, 14, 21, 28, 35, 42, 49, 56, 63] verse = ['自古逢秋悲寂寥', '我言秋日胜春朝', '晴空一鹤排云上', '便引诗情到碧霄'] untitle = ['Python', 28, '人生苦短', '我用Python', ['爬虫', '自动化运维', '云计算']] python = ['优雅', '明确', '简单']-
说明:在使用列表时,虽然可以将不同类型的数据放入到同一个列表中,但是通常情况下,我们不这样做,而是在一个列表中只放入一种类型的数据,这样可以提高程序的可读性。
-
-
创建空列表emptylist = [] -
创建数值列表-
在 Python 中,数值列表很常用。例如,在考试系统中记录学生的成绩,或者在游戏中记录每个角色的位置、各个玩家的得分情况等都可应用数值列表。在 Python 中,可以使用
list()函数直接将range()函数循环出来的结果转换为列表。-
list() 函数的基本语法如下:list(data)
-
data 表示可以转换为列表的数据,其类型可以是
range 对象、字符串、元祖或者或者其他可迭代类型的数据。
list(range(10, 20, 2)) # [10, 12, 14, 16, 18] -
-
-
删除列表-
对于已经创建的列表,不再使用时,可以使用
del语句将其删除。语法格式如下: -
del语句在实际开发时,并不常用。因为 Python 自带的垃圾回收机制会自动销毁不用的列表。所以即使我们不手动将其删除,Python 也会自动将其回收。
team = ['皇马', '罗马', '利物浦', '拜仁'] del team -
-
访问列表元素- 在 Python 中,如果想将列表的内容输出也比较简单,可以直接使用
print()函数即可。例如,创建一个名称为 untitle 的列表,并打印该列表,可以使用下面的代码:
untitle = ['Python', 28, '人生苦短,我用Python', ['爬虫', '自动化运维', '云计算']] print(untitle) # ['Python', 28, '人生苦短,我用Python', ['爬虫', '自动化运维', '云计算']]- 也可以通过列表的索引获取指定元素。例如,要获取 untitle 列表中索引为 2 的元素。
print(untitle[2]) # 人生苦短,我用Python - 在 Python 中,如果想将列表的内容输出也比较简单,可以直接使用
-
遍历列表-
遍历列表中的所有元素是常用的一种操作,在遍历的过程中可以完成查询、处理等功能。在生活中,如果想去商场买一件衣服,就需要在商场中逛一遍,看是否有想要的衣服,逛商场的过程就相当于列表的遍历操作。在 Python 中遍历列表的方法有多种,下面介绍两种常用的方法。
使用 for 循环实现
team = ['火箭', '勇士', '开拓者', '爵士'] for item in team: print(item) # 火箭 勇士 开拓者 爵士-
使用 for 循环和 enumerate() 函数实现- 使用 for 循环和 enumerate() 函数可以实现同时输出索引值和元素内容
team = ['火箭', '勇士', '开拓者', '爵士'] for index,item in enumerate(team): print(index, item) # 0 火箭 # 1 勇士 # 2 开拓者 # 3 爵士
-
-
添加、修改和删除列表元素-
添加元素
append():列表对象的 append() 方法用于在列表末尾追加元素
phone = ['摩托罗拉', '诺基亚', '三星', 'OPPO'] phone.append('iPhone') print(phone) # ['摩托罗拉', '诺基亚', '三星', 'OPPO', 'iPhone']extend():用于将一个列表中全部元素添加到另一个列表中
oldPhone = ['三星', '苹果'] newPhone = ['华为', '小米'] oldPhone.extend(newPhone) print(oldPhone) # ['三星', '苹果', '华为', '小米'] -
修改元素
- 修改列表中的元素只需要通过索引获取该元素,然后再为其重新复制即可。
phone = ['三星', '小米', '苹果', '诺基亚'] phone[-1] = '华为' print(phone) # ['三星', '小米', '苹果', '华为'] -
删除元素
-
删除元素主要有两种情况,一种是根据索引删除,另一种是根据元素值进行删除。
根据索引删除
verse = ['长亭外', '古道边', '芳草碧连天'] del verse[-1] print(verse) # ['长亭外', '古道边']-
根据元素值删除- 如果想要删除一个不确定其位置的元素,可以根据元素值删除
team = ['火箭', '公牛', '开拓者', '爵士'] team.remove('公牛') print(team) # ['火箭','开拓者', '爵士']- 使用列表对象
remove()方法删除元素时,如果指定元素不存在,将会报错。所有使用remove()方法删除元素前,最好判断该元素是否存在。列表对象的count()方法用于判断指定元素出现的次数。
team = ['火箭', '公牛', '开拓者', '爵士'] value = '公牛' if team.remove(value) > 0 : team.remove(value) print(team) # ['火箭', '开拓者', '爵士']
-
-
-
对列表进行统计和计算-
获取指定元素出现的次数
- 使用列表对象的
count()方法可以获取指定元素在列表中的出现次数
song = ['云在飞', '我在诛仙逍遥涧', '送你一匹马', '半壶纱', '云在飞', '遇见你', '等你等了那么久'] num = song.count('云在飞') print(num) # 2 - 使用列表对象的
-
获取指定元素首次出现的下标
- 使用列表对象的
index()方法可以获取指定元素在列表中首次出现的位置(即索引)
song = ['云在飞', '我在诛仙逍遥涧', '送你一匹马', '半壶纱', '云在飞', '遇见你', '等你等了那么久'] position = song.index('云在飞') print(position) - 使用列表对象的
-
统计数值列表的元素和
-
在 Pytnon 中,提供了
sum()函数用于统计数值列表中各元素的和-
语法格式如下:sum(iterable[,start])-
iterable:表示要统计的列表 -
start:设定一开始统计的数值,可选,默认值为 0
-
-
grade = [98, 99, 97, 100, 100] total = sum(grade, 100) print(total) # 594 -
-
-
对列表进行排序-
使用列表对象的
sort()方法-
排序后缘列表的元素将发生改变列表对象的sort()方法语法格式如下:listname.sort(key=None, reverse=False)-
listname:表示要进行排序的列表 -
key:表示指定从每个元素中提取一个用于比较的健,接收一个比较返回值 -
reverse:可选参数,为True则降序排列。False则升序排列,默认为升序排序
char = ['cat', 'tom', 'Angela', 'pet'] def length(item): return len(item) # 根据每一项的长度来降序排序 char.sort(key=length, reverse=True) # ['Angela', 'cat', 'tom', 'pet'] -
-
-
使用内置的
sorted()函数实现-
使用该函数进行排序后,原列表的元素不变sorted()函数的语法格式如下:sorted(iterable, key=None, reverse=False)-
iterable:表示要进行排序的列表名称 -
key:表示指定从每个元素中提取一个用于比较的健,接收一个比较返回值 -
reverse:可选参数,为True则降序排列。False则升序排列,默认为升序排序
char1 = ['cat', 'tom', 'Angela', 'pet'] def length(item): return len(item) # 根据每一项的长度来降序排序 char2 = sorted(char1, key=length, reverse=Ture) print(char2) # ['Angela', 'cat', 'tom', 'pet'] -
-
-
-
列表推导式-
生成指定范围的数值列表,语法格式如下:
list = [Expression for var in range]-
list:表示生成的列表名称 -
Expression:表达式 -
var:循环变量 -
range:采用 range() 函数生成的 range 对象
import random # 导入 random 标准库 randomnumber = [random.randint(10, 100) for i in range(10)] print('生成的随机数为:', randomnumber) # [78, 84, 21, 60, 74, 50, 65, 15, 94, 90] -
-
根据列表生成指定需求的列表,语法格式如下:
newList = [Expression for var in list]-
newlist:表示新生成的列表名称 -
Expression:表达式,用于计算新列表的元素 -
var:变量,值为后面列表的每一个元素值 -
list:用于生成新列表的原列表 -
例如:定义一个记录商品价格的列表,然后应用列表推导式生成一个将全部商品价格打五折的列表,具体代码如下:
price = [1200, 5330, 2988, 6200, 1998, 8888] sale = [int(i * 0.5) for i in price] print('原价格:', price) print('打五折的价格:', sale) -
-
从列表中选择符合条件的元素组成新的列表,语法格式如下:
newlist = [Expression for var in list if condition]-
newlist:表示新生成的列表名称 -
Expression:表达式,用于计算新列表的元素 -
var:变量,值为后面列表的每个元素值 -
list:用于生成新列表的原列表 -
condition:条件表达式,用于指定筛选条件 -
例如:定义一个记录商品价格的列表,然后应用列表推导式生成一个商品价格高于 5000 元的列表,具体代码如下:
price = [1200, 5330, 2988, 6200, 1998, 8888] sale = [x for x in price if x > 5000] print('原列表:', price) print('价格高于5000的:', sale) -
-