当前位置:首页 >> 编程语言 >> 【Python基础】S01E02 列表,w760

【Python基础】S01E02 列表,w760

0evadmin 编程语言 1
文件名:【Python基础】S01E02 列表,w760 【Python基础】S01E02 列表

S01E02列表 列表是什么列表的操作修改、添加和删除元素列表排序列表倒序列表长度遍历整个列表 数值列表创建数值列表数值列表简单统计计算列表推导式 列表切片复制列表

列表是什么

在Python中,用方括号([ ])表示列表,用逗号分隔其中的元素。

bicycles = ['trek','cannon','redline','specialized']print(bicycles)>>> ['trek', 'cannon', 'redline', 'specialized'] bicycles = ['trek','cannon','redline','specialized']for i in bicycles:print(i)>>> trekcannonredlinespecialized

知识自查:第一个列表元素的索引是 0,而不是 1 ;

bicycles = ['trek','cannon','redline','specialized']print(bicycles[0])# 打印列表中第一个元素print(bicycles[-1])# 打印列表中最后一个元素>>> trek>>> specialized

提高:与 format 结合;

bicycles = ['trek','cannon','redline','specialized']message = f"My first bicycle was a {bicycles[1].title()}"print(message)>>> My first bicycle was a Cannon
列表的操作 修改、添加和删除元素

修改元素:

修改列表元素指定列表名称以及修改的元素的索引值,再附上修改该索引位置的新值;

motorcycles = ['honda', 'yamaha', 'suzuki']motorcycles[0] = 'ducati'# 0 称为索引值(即位置)print(motorcycles)>>> ['ducati', 'yamaha', 'suzuki']

添加元素:

添加元素最简单的方式是将元素追加(append)到列表的末尾;

motorcycles = ['honda', 'yamaha', 'suzuki']motorcycles.append('ducati')print(motorcycles)>>> ['honda', 'yamaha', 'suzuki', 'ducati']

当然,也可以使用 insert() 方法在列表的任意位置添加新元素,为此,我们需要指定新元素添加位置的索引以及添加的值;

motorcycles = ['honda', 'yamaha', 'suzuki']motorcycles.insert(1, 'ducati')print(motorcycles)>>> ['honda', 'ducati', 'yamaha', 'suzuki']

insert() 中索引的概念是要插入到的位置,insert(1, 'ducati') 即要在列表中将 “ducati” 插入为第二个元素;

删除元素:

如果知道要删除的元素在列表中的位置,可以直接使用 del 函数删除:

motorcycles = ['honda', 'yamaha', 'suzuki']del motorcycles[1]print(motorcycles)>>> ['honda', 'suzuki']

如果要删除末尾元素,可使用 pop() 函数,且 pop() 函数会返回删除的元素值;

motorcycles = ['honda', 'yamaha', 'suzuki']popped_motorcycles = motorcycles.pop()print(motorcycles)print(popped_motorcycles)>>> ['honda', 'yamaha']>>> suzuki

但是实际上,pop(index) 函数中 index 可以指定索引位置,也可以删除指定索引的元素;

motorcycles = ['honda', 'yamaha', 'suzuki']popped_motorcycles = motorcycles.pop(1)print(motorcycles)print(popped_motorcycles)>>> ['honda', 'suzuki']>>> yamaha

如果不知道要删除的值在列表中的位置,使用 remove() 函数方法;

motorcycles = ['honda', 'yamaha', 'suzuki']motorcycles.remove('yamaha')print(motorcycles)>>> ['honda', 'suzuki']

知识自查:remove() 函数方法只会删除第一个符合指定的值,如果要删除列表中所有符合标准的值,则需要使用循环。


列表排序

sort() 排序

Python 提供 sort() 方法可以轻松的对列表进行排序;

cars = ['bmw', 'audi', 'toyota', 'volvo']cars.sort()print(cars)>>> ['audi', 'bmw', 'toyota', 'volvo']

默认按照字母顺序对列表进行排序,当然也可以选择按照字母相反的顺序;

cars = ['bmw', 'audi', 'toyota', 'volvo']cars.sort(reverse=True)print(cars)>>> ['volvo', 'toyota', 'bmw', 'audi']

当然,我最爱 Volvo ~

sorted() 临时排序

sort() 方法会彻底改变排序,但是如果我们想要保留原来的排序顺序,而呈现出按字母大小排序,可使用 sorted() 函数;

cars = ['bmw', 'audi', 'toyota', 'volvo']print(sorted(cars))print(cars)>>> ['audi', 'bmw', 'toyota', 'volvo']>>> ['bmw', 'audi', 'toyota', 'volvo']
列表倒序

如果无需排序,只要反向列表初始的顺序,reverse() 函数可以满足于你;

cars = ['bmw', 'audi', 'toyota', 'volvo']cars.reverse()print(cars)>>> ['volvo', 'toyota', 'audi', 'bmw']
列表长度

使用 len() 函数可快速获悉列表的长度;

cars = ['bmw', 'audi', 'toyota', 'volvo', 'benz', 'RR']print(len(cars))>>> 6
遍历整个列表

使用循环遍历一个列表的所有内容;

magicians = ['alice','david','carolina']for magician in magicians:print(f'{magician.title()}, that was a good trick!')>>> Alice, that was a good trick!David, that was a good trick!Carolina, that was a good trick!

建议: 在使用列表遍历时,建议对单个列表元素起有意义的名称,比如 cat 对应 cats 列表等。如此单数复数的命名约定有助于理解 for 循环对每个元素执行的操作。


数值列表 创建数值列表

range(a,b)

Python中的函数 range() 可以轻松的生成一系列的数;

for value in range(1,5):print(value)>>> 1234

range(1,5) 代表 [1,5);

range(a,b,length)

range() 函数还可以指定步长,即第三个参数 length;

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

(1,5,2) 中 2 代表“步长”,而所谓“步长”,即每一步的长度,故 value 包含两个值:1;1+2=3;

创建数值列表

要创建数值列表,可使用 list() 函数与 range() 函数的组合,list() 函数直接将 range() 的结果转换为列表;

numbers = list(range(1,5))print(numbers)>>> [1, 2, 3, 4]
数值列表简单统计计算

所谓简单统计计算,即最大值(max)、最小值(min)、求和(sum);

digits = [1,2,3,4,5,6,7,8,9,0]print(max(digits))>>> 9print(min(digits))>>> 0print(sum(digits))>>> 45
列表推导式

e . g . e.g. e.g. 简单介绍

squares = [value**2 for value in range(1,11)]print(squares)>>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表推导式将 for 循环和创建新元素的代码合并成一行,并自动追加新元素;但是虽然列表推导式可以将三四行代码写到一行,其缺陷也是相当明显的,即会增大代码理解难度。


列表切片

返回列表的第 2~4 个元素;

players = ['charles', 'martina', 'michael', 'florence', 'eli']print(players[1:4])>>> ['martina', 'michael', 'florence']

返回列表的前 4 个元素、最后两个元素;

players = ['charles', 'martina', 'michael', 'florence', 'eli']print(players[:4])print(players[-2:])>>> ['charles', 'martina', 'michael', 'florence']>>> ['florence', 'eli']

返回列表第 1、3、5 名;

players = ['charles', 'martina', 'michael', 'florence', 'eli']print(players[::2])>>> ['charles', 'michael', 'eli']
复制列表

复制列表踩坑,复制方式不同结果不同;

my_foods = ['pizza', 'falafel', 'carrot cake']friend_foods_1 = my_foods[:]# 复制方式1friend_foods_2 = my_foods# 复制方式2my_foods.append('cannoli')friend_foods_1.append('ice cream')friend_foods_2.append('noodles')print(my_foods)print(friend_foods_1)print(friend_foods_2)>>> ['pizza', 'falafel', 'carrot cake', 'cannoli', 'noodles']['pizza', 'falafel', 'carrot cake', 'ice cream']['pizza', 'falafel', 'carrot cake', 'cannoli', 'noodles']

观察;

# 复制方法1 是将值复制给一个名称为 friend_foods_1、有自己内存空间地址的变量中;friend_foods_1 = my_foods[:]# 复制方法2 变量 friend_foods_2 内存空间地址指向 my_foods,没有自己的空间地址;friend_foods_2 = my_foods

2023年9月20日 徐鸿铎 北京海淀西三旗

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接