遍历列表
for循环实现:

这行代码让python从列表magicians中取出一个名字,并将其存储在变量magician中,最后让python打印magician中的名字:

python执行这个循环的整个过程:
python首先将读取第一行代码for magician in magicians:
这行代码让python获取列表magicians中的第一个值(“alice”),并将其存储到变量magician中,接下来python去读取下一行代码:print(magician),它让python打印magician的值—依然是‘alice’。
因为列表中还有其他值,python返回到循环的第一行,也就是for magician in magicians:对列表中的剩余所有值进行如上操作。
对于编写for循环时,对于用于存储列表中每个值的临时变量,可指定任何名称。
利用缩进可以在for循环内多执行一些操作:


for循环结束后执行一些操作:
只需要将相应的代码放在for循环后面,且不缩进即可:


由此可以看出python是根据缩进来判断代码与前一个代码行的关系。
magician在for循环结束后,里面存的值是carolina,而且,这时候如果执行print(magician[1]),打印的是a,它会把carolina也变成一个列表(自己瞎琢磨的,也不知道对不对,但是实际输出确实是这个)
数值列表
存储一组数字的集合。
比如在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度)组成的集合。
range()函数


上述代码好像应该打印1-5,但实际只是打印数字1-4。
函数range()让python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值(也就是这里的5)。
使用range()创建数字列表
使用函数list()将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将为一个数字列表。


使用函数range()时,还可以指定步长,例如,下面是打印1~10内的偶数:


将前10个证书的平方加入到一个列表中:


当然程序也可以更简洁一些:

min max sum


列表解析
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素


代码的解释:首先指定一个描述性的列表名,如squares;然后指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值,在这个代码中,表达式为value ** 2,它计算平方值,然后编写一个for循环,用于给表达式提供值,再加上右方括号。for循环为for value in range(1,11),它将值1~10提供给表达式value**2.注意这里的for语句末尾没有冒号。
切片
所谓切片就是处理列表的部分元素
创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样。比如你指定索引0-3,输出的是0、1、2的元素


这里打印的就是该列表的切片,只包含三名队员。输出的也是一个列表。
如果没有指定起始索引,python从列表开头开始提取:

要让切片终止与列表末尾,也可使用类似的语法。比如:

负数索引返回离列表末尾相应距离的元素。
例如:

遍历切片
在for循环中使用切片:

复制列表
可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引( [ : ] )

为了表明我们是两个列表,分别用append方法来添加'cannoli'和'ice cream'看打印结果 得到的也是我们想要的结果。
而如果我们仅仅是简单地将my_foods赋给friend_foods的话:

可以看到并不是将my_foods的副本存储到friend_foods。这种语法实际上是让python将新变量friend_foods关联到包含在my_foods中的列表,因此这两个变量都指向同一个列表,所以说我们将cannoli添加到my_foods中时,它也将出现在friend_foods中。
元组
元组看起来犹如列表,但使用圆括号而不是方括号来标识。
定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
元组的值不能被修改
跟列表的操作其实都一样:

尝试修改会报错:

虽然不能修改元组的元素,但可以给存储元组的变量赋值,重新定义整个元组:

网友评论