4.1 遍历整个列表

for循环
for magician in magicians:

print(magician)
#magician作为临时变量,用于存储magicians列表中的各个值。
#注意for循环中的冒号和缩进

4.2 注意缩进

4.3创建数值列表

4.3.1 使用函数range()
生成一系列的数字 。 eg. range(1,5) #生成1,2,3,4 注:并不是直接生成了列表,只是一个范围,得配合for循环才能输出这些数字

4.3.2 使用range创建数字列表

list(range()) #即,将range()作为list()的参数,将结果直接转换为列表
range()还可以指定步长。 eg. range(1,10,2) #生成1,3,5,7,9

4.3.3 对数字列表执行简单的统计计算
min() #求最小值
max() #求最大值
sum() #求和

4.3.4 列表解析
square = [value**2 for value in range(1,11)] #生成一个1-10的平方数的列表
[]中第一个为列表中元素的表达式;右边的for循环用于给表达式提供值。

4.4 使用列表的一部分

4.4.1 切片

arsenal[0:2] #截取列表中的前两个元素作为一个新的列表。

arsenal[:4] #可以不指定第一个索引,即从头开始,到元素3(第四个元素)结束,截取列表。
arsenal[4:]

也可以不指定第二个索引,从元素4(第五个元素)开始,到列表末尾结束,截取列表。

arsenal[:] #都不指定,就截取全部列表。(也是通过这种方式来复制整个列表,给到一个新的变量。详情见后)

arsenal[-2:] #从倒数第二个元素开始,截取到列表末尾。

arsenal[:-2] #从头开始,截取到倒数第二个元素(同样,不包括倒数第二个)

arsenal[-2:-1] #截取倒数第二个元素
(切片的第三个参数为步长值,默认为1,详情见下面的补充内容;)
(而且切片操作同样适用于元组tuple和字符串)

4.4.2 遍历切片
for player in arsenal[:]:

print(player)

4.4.3 复制列表

duplicate = arsenal[:]
#所谓复制,是利用切片截取全部列表,赋给一个新的变量。
如果直接是duplicate = arsenal,只是将arsenal这个变量对应的列表,与新的变量duplicate关联了起来,并没有复制新的一个列表给duplicate。也就是说,如果对duplicate进行增减元素等操作,arsenal也会跟着变。
理解时可以参考JAVA中的reference。相当于arsenal这个变量中存储的是列表的地址,duplicate = arsenal后,duplicate也指向了同一个列表。

4.5 元组

元组:不可变的列表称为“元组”

4.5.1 定义元组

dimensions = (200, 50) #元组用的是圆括号
由于元组不可变,所以不能对其中的元素进行任何修改:例如赋值,增减元素等。调用也不行!

4.5.2 遍历元组
用for循环,与列表的遍历一样。

4.5.3 修改元组变量
即,可以通过定义一个新的元组到原来的变量上,达到修改元组的目的。(废话)

元组的只有定义与列表不同,访问的各种操作与列表一致

补充:

切片操作的具体语法:
con[start_index]:返回索引值为start_index的对象。start_index为 -len(con)到len(con)-1之间任意整数。
con[start_index: end_index]:返回索引值为start_index到end_index-1之间的连续对象。
con[start_index: end_index : step]:返回索引值为start_index到end_index-1之间,并且索引值与start_index之差可以被step整除的连续对象。

con[start_index: ]:缺省end_index,表示从start_index开始到序列中最后一个对象。
con[: end_index]:缺省start_index,表示从序列中第一个对象到end_index-1之间的片段。
con[:]:缺省start_index和end_index,表示从第一个对象到最后一个对象的完整片段。
con[::step]:缺省start_index和end_index,表示对整个序列按照索引可以被step整除的规则取值。

[注意]对于序列结构数据来说,索引和步长都具有正负两个值,分别表示左右两个方向取值。索引的正方向从左往右取值,起始位置为0;负方向从右往左取值,起始位置为-1。因此任意一个序列结构数据的索引范围为 -len(consequence) 到 len(consequence)-1 范围内的连续整数。