栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

Python列表操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python列表操作

– No bold guesses, no great discoveries. — Isaac Newton

目录
  • 一、遍历列表
    • 1.1 在for循环中执行更多操作
    • 1.2 for循环结束后的操作
    • 1.3 避免循环缩进错误
  • 二、创建数值列表
    • 2.1 函数range()
      • 2.1.1 函数range()创建简单数字列表
      • 2.1.2 函数range()创建复杂数字列表
    • 2.2 列表解析
    • 2.3 数值列表的简单统计
    • 2.4 使用列表的一部分
      • 2.4.1 切片
      • 2.4.2 遍历切片
      • 2.4.3 复制列表
  • 三、元组
    • 3.1 定义元组
    • 3.2 遍历元组
    • 3.3 修改元组变量
  • 四、完结

一、遍历列表

很多时候,我们需要遍历列表中每个元素进行相关操作。我们可以通过for循环来实现列表遍历。

# 示例
players = ['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins']
forname in players:
   print(name) # 注意缩进
# 运行输出结果
Stephen Curry
Klay Thompson
Andrew Wiggins

这个示例的执行流程分为4个步骤:
1)python从列表players中读取一个名字;2)将其储存在变量name(临时变量)中;3)通过函数 print() 打印存储在变量name的名字;4)返回循环的第一行,对于列表下个元素重复执行以上操作,直到最后一个值结束。

1.1 在for循环中执行更多操作

在for所在的代码行下面,每个缩进的代码行都是循环的一部分。

# 示例
players = ['curry',  'thompson', 'wiggins']
forname in players:
   name = name.title()
   print('%s is a good basketball player.'%(name))
# 运行输出结果
Curry is a good basketball player.
Thompson is a good basketball player.
Wiggins is a good basketball player.
1.2 for循环结束后的操作

for循环后面,没有缩进的代码行只会执行一次。

# 示例
players = ['Stephen Curry',  'Klay Thompson']
forname in players:
   name.title()
   print('%s is a good basketball player'%(name))
# 循环结束
print('You are the champions!') # 只执行一次
# 运行输出结果
Stephen Curry is a good basketball player
Klay Thompson is a good basketball player
You are the champions!
1.3 避免循环缩进错误
  • 忘记缩进:位于for语句且所有属于循环部分的代码行,一定要缩进。否则报如下错误:IndentationError: expected an indented block.
  • 忘记缩进额外的代码行:可能出现逻辑错误
# 示例
players = ['Stephen Curry',  'Klay Thompson']
for name in players:
   name.title()
print('%s is a good basketball player'%(name))
# 运行输出结果
Klay Thompson is a good basketball player

其中print()所在代码也属于循环语句的一部分,也应该缩进。虽然代码是合法的,但是存在逻辑错误,不符合预期。

  • 缩进循环结束的语句:可能会出现逻辑错误,不符合预期结果。
  • 遗忘冒号:for循环语句末尾冒号目的是告诉python下一行是循环的第一行。
二、创建数值列表

我们常常需要使用一些数值,而列表很适合存储数值集合。

2.1 函数range()
# 示例
fori in range(3):
    print(i) # 打印一系列数值
# 运行输出结果
0
1
2
2.1.1 函数range()创建简单数字列表

创建数字列表时,须使用**函数list()**将range() 结果转换成列表。

# 示例
# range只包含一个stop参数,默认从0开始,stop-1结束
numbers = list(range(7)) #  range(stop)
print(numbers)

#range包含两个参数:start, stop;从start开始,stop-1结束
numbers = list(range(2, 7)) # range(start, stop)
print(numbers)

#range包含三个参数:start, stop,step;从start开始,步长为step,不超过stop-1。
numbers = list(range(3,7,2)) # range(start, stop[, step])
print(numbers)

# 运行输出结果
[0, 1, 2, 3, 4, 5, 6]
[2, 3, 4, 5, 6]
[3, 5]
2.1.2 函数range()创建复杂数字列表

例如创建一组简单的平方数:

# 示例
squares = [] # 创建空列表
for i inrange(10):
    squares.append(i**2) # 通过**计算数值平方,然后通过append添加如列表中
print(squares)

# 运行输出结果
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2.2 列表解析

前面介绍的生成squares列表的方法包含的几行,而列表解析只需编写一行代码。

# 示例
squares = [i**2 for i in range(10)]
print(squares)

# squares = [i ** 2 for i in range(10) if i % 2==0]
#print(squares)

# 运行输出结果
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# [0, 4, 16, 36, 64]

语法步骤:
1)指定一个列表名如 squares;2)在一个中括号中定义一个表达式如 i**2,用于生成列表中的值; 3)然后编写一个for循环,用于给表达式提供值。

2.3 数值列表的简单统计
  • 函数 min():找出列表最小值
  • 函数 max():找出列表最大值
  • 函数 sum():对列表所有数值求和
2.4 使用列表的一部分

列表的某部分元素,python称之为切片。

2.4.1 切片

要创建切片,需指定 start 和 stop 的索引,与函数range()一样, 取到 stop-1。

# 示例
players = ['Stephen Curry',  'Klay Thompson', 'Andrew Wiggins','Draymond Green']
print(players[0:2]) # 取0,1索引对应的元素
print(players[:2]) # 与上面相同,默认从0索引开始

print(players[2:]) # 从索引2直到最后
print(players[2:3]) # 取索引2,等价于players[2]
print(players[:-2]) # 取倒数第二个前面所有元素
print(players[-3:]) # 取倒数第三个后面所有元素

print(players[:]) # 取所有元素,等价于players
print(players[:-1:2]) # 其中:2表示切片的步长为2
# 运行输出结果
['Stephen Curry', 'Klay Thompson']
['Stephen Curry', 'Klay Thompson']
['Andrew Wiggins', 'Draymond Green']
['Andrew Wiggins']
['Stephen Curry', 'Klay Thompson']
['Klay Thompson', 'Andrew Wiggins', 'Draymond Green']

['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins', 'Draymond Green']
['Stephen Curry', 'Andrew Wiggins']

2.4.2 遍历切片

可使用for循环遍历切片。

# 示例
players = ['Stephen Curry',  'Klay Thompson', 'Andrew Wiggins','Draymond Green']
for name in players[:2]:
    print(name)
# 运行输出结果
Stephen Curry
Klay Thompson
2.4.3 复制列表

通过切片 [:] 提取原列表的所有元素,从而创建这个列表的副本。

# 示例
players = ['Stephen Curry',  'Klay Thompson', 'Andrew Wiggins']
new_players = players[:] # 注意不能简单的使用 new_players = players

players.append('Draymond Green')
new_players.append('Kevon Looney')
print(players)
print(new_players)
# 运行输出结果
['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins', 'Draymond Green']
['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins', 'Kevon Looney']

列表错误的复制方式: new_players = players。这里的 = 不是将 players 的副本储存到new_players, 而是将新变量new_players关联到变量players对应列表,因此 = 使得两个变量都指向同一个列表。

# 示例
players = ['Stephen Curry',  'Klay Thompson', 'Andrew Wiggins']
new_players = players

players.append('Draymond Green')
new_players.append('Kevon Looney')
print(players)
print(new_players)
# 运行输出结果
['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins', 'Draymond Green', 'Kevon Looney']
['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins', 'Draymond Green', 'Kevon Looney']
三、元组

列表可以修改,适合储存变化的数据。当要储存一些不能修改的数据时,则需要使用元组。
元组:元组看起来如同列表,但使用圆括号进行标识,可使用索引进行访问,和访问列表一样。

3.1 定义元组
# 示例
players = ('Stephen Curry', 'Klay Thompson', 'Andrew Wiggins') # 使用圆括号
print(players[0])
print(type(players)) # 查看数据类型
# 运行输出结果
Stephen Curry


3.2 遍历元组
# 示例
players = ('Stephen Curry', 'Klay Thompson', 'Andrew Wiggins')
for i in players:
    print(i)
# 运行输出结果
Stephen Curry
Klay Thompson
Andrew Wiggins
3.3 修改元组变量

虽然不能修改元组中的元素,但可以给储存元组的变量赋值

# 示例
players = ('Stephen Curry', 'Klay Thompson', 'Andrew Wiggins')
print(players)

# 变量重新赋值
players = ('Stephen Curry', 'Klay Thompson')
print(players)
# 运行输出结果
('Stephen Curry', 'Klay Thompson', 'Andrew Wiggins')
('Stephen Curry', 'Klay Thompson')
四、完结

撒花

If you feel happy, clap your hands.

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037294.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号