列表【续】
修改
当你想要修改列表中的元素只需要指定列表中的索引。
例如
classnumber=['zhang','su','wang']
你想要将su修改为fan
classnumber[1]='fan'
这时候输出的就会是
['zhang','fan','wang']
当然我们可以修改任何一个列表中的元素,但是要记得索引是从0开始的。
当你想要在列表末尾添加一个元素可以使用append在列表。
例如 想加入一个meng到列表
classnumber=['zhang','su','wang']
classnumber.append('meng')
这时候输出的将是
['zhang','su','wang','meng']
当然如果你设置一个空的列表,使用append将元素一个个加进去也是可以的。
例如
classnumber=[]
classnumber.append('zhang')
classnumber.append('su')
classnumber.append('wang')
最终输出的效果也是一样的
['zhang','fan','wang']
如果你已经排列好了顺序,但还想在中间加入一个元素,那么这就要用到insert了,他可以在列表的任何位置插入元素,但是需要你的索引准确。
例如
classnumber=['zhang','su','wang']
classnumber.insert(0,'meng')
这时将会输出
['meng','zhang','su','wang']
0索引的是第一个的位置,后面的zhang,su,wang都依次往后。
删除
想要删除列表中的东西在python中还是有很多方法的如果你知道想要删除的东西在列表中的位置,那么你可以使用del进行删除。
例如
classnumbers=['zhang','wang','su']
print(classnumbers)
del classnumbers[0]
print(classnumbers)
为了进行对照我们设置了两组输出,第一组直接进行输出,第二组我们将索引指向了0
我们第一个输出的是
['zhang','wang','su']
第二个输出的是
['wang','su']
因为索引是[0]所以将第一个zhang进行了删除
当然del不止可以删除第一个元素,他可以根据索引进行删除,前提是知道索引的位置,假如说想要删第二个,我们可以将索引改成[1],那么他将会输出的是[‘zhang’,‘su’],将会把wang删除。
当然了想要多进行删除可以使用切片的方法进行删除。
例如
classnumbers=['zhang','wang','su','meng','fan','chu']
del classnumbers[0:3]
这时他就会输出
['meng','fan','chu']
对前三个进行了删除,这时候就会有个疑问,索引不是从0开始吗,你删到3不应该是删完第四个吗,这个就到等到以后学习了切片再进行解决,但现在可告诉你是删到第4个之前的值。
有的时候你想要把他删除但是还想要使用它的值,那么就需要pop的出场了,下面举个例子。
例如
classnumbers=['zhang','wang','su','meng','fan','chu']
print(classnumbers)
pop_numbers=classnumbers.pop()
print(classnumbers)
print(pop_numbers)
我这会设置了三组对照,第一次进行输出的是本来的数据,第二组输出的是删除之后的数据,第三组输出的就是我们删除的数据了。
他将会输出:
['zhang','wang','su','meng','fan','chu']
['zhang','wang','su','meng','fan']
['chu']
当然pop()也可根据索引来删除任何元素。
del和pop一个本质的区别就是你还用不用删除掉的那个数据,如果你不会再用到,那么你可以使用del,如果想要将删除的数据进行输出那么就要用到pop。
如果你不知道想要删除的元素在什么位置,但是却知道想要删除元素的名称,那么你就可以使用remove进行删除。
例如
classnumbers=['zhang','su','wang']
classnumbers.remove(‘su’)
print(classnumbers)
这个时候你不知道su在什么位置但是知道想要删除su,这样就可以进行删除,输出的数据将会是:
['zhang','wang']
还有我们可以使用clear进行全部的删除
it.clear()
排序
在列表中,我们想要将列表进行排序可以使用一些方法。
sort()可以进行对列表的顺序排序,按26个字母的顺序,将元素排列。
例如
classnumber=['zhang','su','wang','meng']
classnumber.sort()
print(classnumber)
将会永久性的改变为首字母的顺序,将会输出:
['meng','su','wang','zhang']
我们也可以将字母的顺序反过来,只需要输入参数:reverse=Ture
例如
classnumber=['zhang','su','wang','meng']
classnumber.sort(reverse=Ture)
输出将会是:
['zhang','wang','su','meng']
使用sorted可以对列表里面的东西进行一个临时的排序而不影响后面进行的输出。
我们想要反转列表的排列顺序可以使用reverse()
classnumber=['zhang','wang','su','meng']
classnumber.reverse()
print(classnumber)
将会输出
['meng','su','wang','zhang']
使用函数len()可以快速知道列表的长度,无论列表中有多少个元素,只要你获知,你就可以使用len()将会出现所有元素的数目
例如
clssnumber=['zhang','wang','su','fan','chu','meng']
len(classnumber)
将会输出6。
循环
for循环
在我们学习python的时候可能需要一个东西重复执行操作,有的可能需要大量重复的代码,这个时候可能需要for来进行循环代码。
例如
c
lassnumbers=['zhang','wang','su','meng']
for classnumber in classnumbers:
print(classnumber)
zhang
wang
su
meng
我们设定一个列表将我们同学的名字写到列表中,之后我们设置一个关联量classnumber,使用for进行循环,最后输出这个关联量classnumber,python将从列表classnumbers中重复取出元素,最后输出的就是列表中所有的名字。
当然如果想要在循环中加入更多的操作也是可以的。
例如:
classnumbers=['zhang','wang','su']
for calssnumber in classnumbers:
print (f"{classnumber.title()},that is a good guy
Zhang,that is a good guy
Wang,that is a good guy
Su,that is a good guy
当我们完成for循环后,想要进行一些操作,可以取消缩进,没有缩进的代码只能执行一次
classnumbers=['zhang','wang','su']
for calssnumber in classnumbers:
print (f"{classnumber.title()},that is a good guy
print("they are good boys")
Zhang,that is a good guy
Wang,that is a good guy
Su,that is a good guy
they are good boys
当我们使用for循环的时候我们需要注意缩进的问题,我们可以使用tab进行缩进,如果我们忘记所及python无法运行,当然如果进行了多余的缩进,也会无法运行。
在循环中最重要的是:,当你输入完一句for循环后记得一定要加上:,用来告诉python下一行是循环的第一行。我也经常容易忘记,有时候找问题所在找了半天后来重写一遍的时候发现,原来是:忘记了:的忘记很不容易被发现。
range
在python中想要输出一些数字可以使用range()进行打印
例如
for value inrange(1,5):
print(value)
1
2
3
4
当我们进行输出时将会输出从1到4的四个数,但是我们写入的是(1,5)。
虽然输入了(1,5)但是并不会输出到5,不会打印5,这是编程语言中常见的现象c中也会涉及到,如果需要打印1-5只需要输出(1,6)就可以了。
当我们使用range时得到的输出可能会不是我们的预期,我们可以对输入进行加一或者减一。
同时,如果我们只输入了后面的数字比如range(6),这时将会从0开始输出,0-5进行输出。
我们想要将range()的结果转换为列表,我们就需要用到list()
classnumbers=list(range(1,6))
print(classnumbers)
[1,2,3,4,5]
我们可设置第三个参数,以此来给range()来指定步长。
比如说range(1,11,2)其中第一个数代表了起始的位置从1开始,11是到11之前结束,2是指每隔2个数空一个进行输出。
numbers=list(range(1,11,2))
print(numbers)
[2,4,6,8,10]
当然可以从2开始从3开始,或者从11结束从22结束,可以指定间隔的长度。
我们想要一个从1-10的平方的数据,我们可以使用(**)表示乘方运算,
squares=[]
for value in range(1,11):
square=value**2
squares.append(square)
print(squares)
[1,4,9,16,25,36,49,64,81]
如果想要让代码
squares=[]
for value in range(1,11):
squares.append(value=**)
print(squares)
[1,4,9,16,25,36,49,64,81]
更加整洁我们可以将变量squares直接放入式子中。