目录
列表的定义
在Python中,列表(List) 是一种可变的、有序的数据结构,可以一次性存储多个数据,且可以同时存储不同的数据类型。
语法结构:列表名 = [元素1,元素2,元素3,元素4......]
new_list = [1, 2, 2, 3] #这就是一个列表
列表的常用操作
你,勤奋的勇者,总希望自己能变得更强,不再在冒险中拖队友后腿。你每天清晨早早起床,在村边小树林里跑步、挥剑,汗水浸透了衣襟,却从未有过怨言。最近,你决定更加系统地锻炼自己,于是坐在木桌前,认真地写下训练计划:
增加元素
函数append()
能直接在列表末尾增加元素,执行完后会产生一个结果,可以用变量装起来,返回值为None。
例如,你将一天划分为“上午”、“下午”和“夜晚”三个部分,并在每个部分里写入不同的训练内容:
[”上午“,“体能训练之运送5公里300斤石头”,“体能训练之100公里来回跑”]
目前你只完成了上午的部分,意识到需要增加下午和夜晚的训练时段,并打算下午进行剑术基础训练3000次,夜晚进行魔法冥想入门。
思路:append()函数可以在列表末尾一次添加一个元素,保持训练计划的连贯性以及确保新的项目能按照时间顺序添加。
training_plan = ["上午", "体能训练之运送5公里300斤石头", "体能训练之100公里来回跑"] training_plan.append("下午") training_plan.append("剑术基础训练3000次") training_plan.append("夜晚") training_plan.append("魔法冥想入门") print(f"添加训练内容后的训练计划是{training_plan}")
对代码进行运行测试:
函数extend()
能直接在列表末尾增加元素,若为序列,则会把序列里的元素逐个加入列表中;extend()函数里的参数必须是一个序列类型的数据,非序列数据类型参数会报错,执行完后会产生一个结果,可以用变量装起来,返回值为None。
例如,周末将至,为了全面提升身体素质,你决定增加专项训练,于是你打算在夜晚再添一次抗寒训练和一次抗毒训练。
思路:extend()函数能够一次性添加多个训练项目,提高效率。
training_plan = ['上午', '体能训练之运送5公里300斤石头', '体能训练之100公里来回跑', '下午', '剑术基础训练3000次', '夜晚', '魔法冥想入门'] extend_plan = ["抗寒训练", "抗毒训练"] training_plan.extend(extend_plan) print(f"添加训练内容后的训练计划是:{training_plan}")
对代码进行运行测试:
函数insert()
能选择下标位置对列表进行元素插入操作,insert()函数第一个参数如果超出列表本身的长度时,插入到列表末尾,插入成功和插入失败的返回值都是None。
例如,村长建议你在下午的训练时间添加抗打击训练2小时,但由于高强度训练需要休息,所以让你在下午在前午休1小时。
思路:insert()函数可以在指定位置插入新项目,不影响其他训练安排。
training_plan = ['上午', '体能训练之运送5公里300斤石头', '体能训练之100公里来回跑', '下午', '剑术基础训练3000次', '夜晚', '魔法冥想入门', '抗寒训练', '抗毒训练'] training_plan.insert(5, "抗打击训练2小时") training_plan.insert(3, "午休1小时") print(f"添加训练内容后的训练计划是:{training_plan}")
对代码进行运行测试:
删除元素
关键字del
能够通过索引下标直接对指定元素进行删除。
语法结构:del 列表名[下标]
例如,经过你的评估,发现午休时间过长影响训练节奏,而且运送石头的训练效果不佳,于是打算将这两个从训练计划中移除。
思路:使用关键字del能够直接根据索引删除特定位置的训练项目。
training_plan = ['上午', '体能训练之运送5公里300斤石头', '体能训练之100公里来回跑', '午休1小时', '下午', '剑术基础训练3000次', '抗打击训练2小时', '夜晚', '魔法冥想入门', '抗寒训练', '抗毒训练'] del training_plan[3] del training_plan[1] print(f"删除训练内容后的训练计划是:{training_plan}")
对代码进行运行测试:
函数pop()
pop()函数在默认情况下会删除最后一个元素,如果给定下标,则会删除指定下标的元素,执行完后会产生一个结果,可以用变量装起来,返回值是被删除的元素。
例如,经历多个月的训练后,你发现基础剑术训练和魔法冥想入门课程都已达到要求,所以打算将这两个进行移除。
思路:pop()函数可以在删除的同时获取被删除的项目,方便记录训练进度。
training_plan = ['上午', '体能训练之100公里来回跑', '下午', '剑术基础训练3000次', '抗打击训练2小时', '夜晚', '魔法冥想入门', '抗寒训练', '抗毒训练'] removed_training = training_plan.pop(3) completed_magic = training_plan.pop(5) #当目标元素之前的元素被删除时,列表元素数量-1,目标元素向前移一位 print(f"移除的训练项目:{removed_training}和{completed_magic}") print(f"删除训练内容后的训练计划是:{training_plan}")
对代码进行运行测试:
函数remove()
remove()函数会直接删除第一个与指定内容相同的元素。
例如,你的抗寒抗毒特训均已完成,打算将这个两个训练内容从计划中删除。
思路:remove()函数能够通过指定内容直接删除训练项目。
training_plan = ['上午', '体能训练之100公里来回跑', '下午', '抗打击训练2小时', '夜晚', '抗寒训练', '抗毒训练'] training_plan.remove("抗寒训练") training_plan.remove("抗毒训练") print(f"删除训练内容后的训练计划是:{training_plan}")
对代码进行运行测试:
修改元素
直接修改
能够通过索引下标直接对指定元素进行修改。
语法结构:列表名[下标] = 新值
例如,经过这次训练后,你发现体能训练强度需要提升,需要把体能训练之100公里来回跑改为体能训练之200公里来回跑,并打算将抗打击训练2小时改为极限生存挑战赛。
思路:该语法能直接通过索引精确修改特定训练项目。
training_plan = ['上午', '体能训练之100公里来回跑', '下午', '抗打击训练2小时', '夜晚'] training_plan[1] = "体能训练之200公里来回跑" training_plan[3] = "极限生存挑战赛" print(f"修改训练内容后的训练计划是:{training_plan}")
对代码进行运行测试:
函数reverse()
reverse()函数能将列表的元素位置的顺序倒过来,执行完后会产生一个结果,可以用变量装起来,返回值为None。
例如,直接将你的计划表进行函数测试看看效果。
training_plan = ['上午', '体能训练之200公里来回跑', '下午', '极限生存挑战赛', '夜晚'] training_plan.reverse() print(f"颠倒的训练计划是:{training_plan}") training_plan.reverse() print(f"再次颠倒的训练计划是:{training_plan}")
对代码进行运行测试:
函数sort()
sort()函数会直接按照默认规则(数字从小到大,字母从a到z)进行有序排序。
例如,你的体重在训练过程中出现以下变化:
[150,148,144,138,142,143,146,144]
现在将该记录进行默认规则排序。
weight = [150,148,144,138,142,143,146,144] weight.sort() print(f"进行默认规则排序后的体重是:{weight}")
对代码进行运行测试:
查找元素
直接查找
能够通过索引下标直接对指定元素进行查找。
语法结构:列表名[下标]
例如,直接查看下午的具体训练目标。
training_plan = ['上午', '体能训练之200公里来回跑', '下午', '极限生存挑战赛', '夜晚'] print(f"下午的训练安排是:{training_plan[3]}")
对代码进行运行测试:
函数index()
能够获取指定元素在列表中的第一个位置,若指定元素在列表中不存在会报错。
例如,查看夜晚的位置。
training_plan = ['上午', '体能训练之200公里来回跑', '下午', '极限生存挑战赛', '夜晚'] print(f"夜晚的下标是:{training_plan.index('夜晚')}")
对代码进行运行测试:
函数count()
能够统计指定元素在列表中出现的次数。
例如,统计下午出现的次数。
training_plan = ['上午', '体能训练之200公里来回跑', '下午', '极限生存挑战赛', '夜晚'] print(f"下午出现的次数是:{training_plan.count('下午')}")
对代码进行运行测试:
关键字in
能够判断列表中是否包含指定元素,若包含,返回值为True,否则返回值为False。
例如,检查训练计划是否包含抗寒训练。
training_plan = ['上午', '体能训练之200公里来回跑', '下午', '极限生存挑战赛', '夜晚'] print(f"训练计划是否包含抗寒训练:{'抗寒训练' in training_plan}")
对代码进行运行测试:
关键字not in
能够判断列表中是否不包含指定元素,若不包含,返回值为True,否则返回值为False。
例如,检查训练计划是否不包含体能训练之100公里来回跑。
training_plan = ['上午', '体能训练之200公里来回跑', '下午', '极限生存挑战赛', '夜晚'] print(f"训练计划是否不包含体能训练之100公里来回跑:{'体能训练之100公里来回跑' not in training_plan}")
对代码进行运行测试: