不对 for 循环做过多的前言解释了,逻辑和 Shell 一样,直接学语法就可以了。
通过 for 循环来遍历列表内的元素
格式:
for i in 列表:
执行动作
还以水果为例
fruits = ['banana', 'orange', 'apple']
for fruit in fruits:
print('I like to eat ' + fruit.title())
print('\n循环结束了')
---
# 运行结果
I like to eat Banana
I like to eat Orange
I like to eat Apple
循环结束了
其中原理不再过多赘述。
与 Shell 不一样的是使用格式,还有就是没有结束判断,只要缩进不同了,就不在循环之内了,从这里可以看出 Python 是很重视缩进的。
创建数字列表
需要存储一组数字的原因有很多,例如,在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度,巨力,人口数量,经度和纬度等)组成的集合
列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。明白如何有效的使用这些工具后,几遍列表包含数百万个元素,你编写的代码也能运行的很好。
数字范围函数range()
函数 range()
可以生成指定范围内的整数列表
for value in range(1,5):
print(value)
---
# 运行结果
1
2
3
4
按照正常思路上述代码的输出应该是1,2,3,4,5,但实际不会这样来输出,这是 python 的一种规则,要输出1,2,3,4,5,需要用到的范围是 range(1,6)
list()
创建数字列表
使用 range()
是无法输出为列表的
value = range(1,5)
print(value)
---
# 运行结果
range(1, 5)
使用函数 list()
可以将 range()
的结果转化为列表
value = list(range(1,5))
print(value)
---
# 运行结果
[1, 2, 3, 4]
range()
函数还可以指定步长,如列表中只需要偶数,从 2 开始到 10,每隔 2 个数字输出一次
value = list(range(2,10,2))
print(value)
---
# 运行结果
[2, 4, 6, 8]
使用函数range()几乎能创建任何需要的数字集,例如,如何创建一个列表,其中包含前10个整数的平方,在Python中,两个星号(**)表示乘方运算。
values = []
for num in range(1,11):
values.append(num**2)
print(values)
---
# 运行结果
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
对数字列表的统计计算
min():列表最小值
max():列表最大值
sum():列表总和
nums = list(range(1,11))
print(min(nums))
print(max(nums))
print(sum(nums))
---
# 运行结果
1
10
55
列表解析
前面在计算列表值的平方时,用到了空列表、for循环等来达到要求,而列表解析让你只需编写一行代码就能生成这样的列表。
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
values = [value**2 for value in range(1,11)]
print(values)
---
# 运行结果
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表切片
处理列表的部分元素——Python称之为切片
要对列表的部分连续的元素进行操作,要使用到索引来进行选定部分元素
fruits = ['apple', 'pear', 'orange', 'banana', 'core']
print (fruits[1:4])
---
# 运行结果
['pear', 'orange', 'banana']
与 range()
的思路一致,1:4 表示索引0到索引4(不包含4)
[:4]:从0到4
[2:]:从2到结尾
[-3:]:表示最后3个元素
使用 for 遍历切片
fruits = ['apple', 'pear', 'orange', 'banana', 'core']
for fruit in fruits[:3]:
print(fruit)
---
# 运行结果
apple
pear
orange
复制列表
fruits = ['apple', 'pear', 'orange', 'banana', 'core']
fruit_s = fruits[:]
print(fruit_s)
---
# 运行结果
['apple', 'pear', 'orange', 'banana', 'core']