第四章:操作列表
1.遍历列表
使用for循环
for item in list_of_items:
即可对list_of_items进行遍历,每次取出的元素为item。
*几个需要注意的:
1.for in 和最尾的冒号 : 一定不能少!
2.需要循环执行的代码,应当缩进。
image.png
2.创建数值列表
(1)range()函数
range(a,b):从a,b的数字,含 a 不含 b 。
image.png
(2)使用list()函数和range()函数 创建数值列表
numbers=list(range(a,b)):创建从a,b的数值列表,含 a 不含 b 。
*:range()函数可以增加第三个参数,用于指定步长。
range(a,b,c):从a,b的数字,含 a 不含 b ,每 c 个数选一个。
image.png
(3)对数字列表进行简单的统计计算
min():取最小值
max():取最大值
sum():取和
image.png
(4)列表解析
即:将for循环和创建新新元素的代码合并成一行
1.squares=[]
for value in range(1,11):
square=value**2
squares.append(square)
2.squares=[value**2 for value in range(1,11)]
代码1和代码2等价。
image.png
3.使用列表的一个部分
(1)切片
1.lists[a:b]:从索引a到索引b的切片,含a不含b
2.lists[:a]:从索引0到索引a的切片
3.lists[a:]:从索引a到最后的切片
4.lists[-a:]:倒数a个元素的切片
5.lists[:]:整个列表(通常用于复制列表)
image.png
(2)复制列表
假设已有list_a列表,需要复制到list_b列表
方法1.list_b=list_a。
**错误:不能完成复制,而只是传递了地址,相当于增加了一个关联。
方法2.list_b=list_a[:]。
**正确。可以将list_a列表的值复制到list_b列表
image.png
从上面的示例可以看出,方法1 的“复制”只是传递了一个关联,
当list_a改变时,list_b也同时改变
也可以理解成,列表的名称实际上是一个指针,直接赋值传递时,传递的是地址的值,请看下面的示例
image.png
将两个变量的id输出时,是一样的。
image.png
采用方法2,当list_a变化时,list_b没有变化,复制成功!
>>>再看看两个变量的id
image.png
两个变量的id是不一样的,说明指向的不是一个地址,互相改变是不影响的。
4.元组
元组可以看成不能修改的列表
(1)定义:使用圆括号()
(2)访问和修改:
1.访问同历列表
2.不能修改单独的元素,但可以重新定义一个元组
names=('wang','li','xie','rao','yan') 这就定义了一个元组
names[n] 访问元组中索引为n的元素
names[n]='new' 这个是不允许的,会报错
names=(1,2,3,4,5,6) 这个是可以的,相当于重新定义一个元组
image.png
5.设置代码格式
(1)缩进:每级缩进为4个空格
(2)行长:每行不超过80字符
(3)注释:每行不超过72字符
都是“乌龟的屁股”,龟腚(规定)。就按这个来吧!
具体的设置方法,每个编辑器不一样,自行请问度娘吧!