Python学习(二)操作列表

一、列表的遍历

每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。

python 复制代码
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(magician)

注意:

1、遍历的时候,后面需要加冒号;

2、遍历下面的内容时候,至少需要一行内容,且这行内容要缩进;

python 复制代码
# 遍历的时候下面没有缩进的代码行-->会报错
magicians = ['alice', 'david', 'carolina']
for magician in magicians:

3、缩进和不缩进的差别

3.1缩进的行-->重复执行;

python 复制代码
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(magician)
    print(magician.title() + ", that was a great trick!")
##输出结果为如下展示:
alice
Alice, that was a great trick!
david
David, that was a great trick!
carolina
Carolina, that was a great trick!

3.2没缩进的行-->只执行一次(值为列表末尾的值);

遍历完毕的时候,如果下面打印的内容没有缩。那么只会执行一次,且值为列表末尾的值

python 复制代码
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(magician)
print(magician.title() + ", that was a great trick!")

#输出结果为如下展示:
alice
david
carolina
Carolina, that was a great trick!

二、使用函数 range()

2.1规则:左包右开

python 复制代码
#输出1 2 3 4
for value in range(1,5):
print(value)
#输出1 2 3 4 5
for value in range(1,6):
print(value)

2.2使用函数 range() 时,还可指定步长

语法

range(startNumber,endNumber,stepLength)

startNumber:开始的数字;

endNumber:结束的最大数字,且要比startNumber大;

stepLength:一次累加多少;

python 复制代码
even_numbers = list(range(2,11,2))
print(even_numbers)
#输出结果
[2, 4, 6, 8, 10]

三、对数字列表执行简单的统计计算

python 复制代码
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45

四、列表解析

前面介绍的生成列表 squares 的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表。 列表解析 将 for 循环和创建新元素的代码合并成一行,并自动

附加新元素。面向初学者的书籍并非都会介绍列表解析,这里之所以介绍列表解析,是因为等你开始阅读他人编写的代码时,很可能会遇到它们。

请注意,这里的 for 语句末尾没有冒号。

python 复制代码
squares = [value**2 for value in range(1,11)]
print(squares)
#输出结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

五、切片

切片:列表的一部分;

5.1语法

start🔚step

start:开始截取的位置,截取的内容包含该位置。

end:结束截取的位置,截取的内容不包含该结束位置。

step:截取的步长,默认值为1。step为正的时候,代表从左到右截取。step为负的时候,从右到左反向截取
例如:

::提取从开头到结尾的整个字符串的全部内容;

start::从start下标字符串开始截取,直到字符串的末尾(包含末尾字符);

:end:从字符串的开始字符截取,直到下标end结束(不包含这个end下标);

start:end:从start下标开始截取,直到下标end结束(不包含这个end下标);

start🔚step:从start下标字符串开始截取,直到下标end结束(不包含这个end下标),步长为step;

::2:每隔一个输出内容;

::-1:将内容反序输出;

-2:-8:-1:将从下标-2开始(包含自己),直到下标-8(不包含自己)结束内容反序输出;

备注:反序输出的时候start一定要在end的右边

5.2规则:左包右开

从下标X开始,到下标Y结束,但是不包含下标Y的值

python 复制代码
# 从下标0开始,输出到下标3的值结束,但是不包含下标3的值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
#输出结果:
['charles', 'martina', 'michael']

5.3如果你没有指定第一个索引, Python 将自动从列表开头开始

python 复制代码
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
#输出结果:
['charles', 'martina', 'michael', 'florence']

5.4如果你没有指定最后一个索引, Python 将自动到列表末尾结束

①开始的下标是正数

python 复制代码
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
#输出结果:
['michael', 'florence', 'eli']

②开始的下标是负数

python 复制代码
# 输出倒数三个值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
#输出结果:
['michael', 'florence', 'eli']

5.5下标都为负数

如果下标都是负数,那么最后一位的下标是从-1开始计算的

java 复制代码
#从下标-8的地方(倒数第八个)开始,直到下标-2结束(不包含下标-2的那个值)

s="欢迎大家来到我的博客学习python课程"
result=s[-8:-2]#下标-8的值是p;下标-2的值是"课",但是不包含"课"
result=s[-2:-8:-1]#下标-2的值是"课";下标-8的值p,但是不包含p;反序输出
print(result)
# 输出
python
课nohty

5.6遍历切片

输出前三个队员的姓名

python 复制代码
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:
    print(player.title())

六、复制列表

6.1复制列表+地址不变

friend_foods = my_foods

python 复制代码
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 输出结果:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

6.2复制列表+地址变化

friend_foods = my_foods:

python 复制代码
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 输出结果:
['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice cream']

总结:

1.friend_foods = my_foods

是将地址给了另外一个列表,他们都共同指向了一个相同的地址;

2.friend_foods = my_foods:

是将my_foods的元素都复制了一份到friend_foods 中;然后他们互相之间互不影响;

相关推荐
Lyn_Li18 小时前
扫描 PDF 歪了怎么办?用 6 种检测方法做本地批量扶正(附开源工具)
python·pdf·ocr·tesseract·开源工具·文档处理·本地处理·扫描件纠偏
金銀銅鐵18 小时前
费马小定理
python·数学·算法
Piko61419 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
茯苓gao1 天前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
万联WANFLOW1 天前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
疋瓞1 天前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
酱学编程1 天前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
如此这般英俊1 天前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
风行南方1 天前
密码学之分组密码
网络·密码学
元Y亨H1 天前
Python - FastAPI 全方位介绍
python·fastapi