【Python】for/else、列表的创建、查询、删除、修改、排序、列表生成式
1、else和for的搭配使用
如果for循环正常结束,则执行else下的语句。
如果循环中遇到break退出了,则不会执行到else下的语句。例如:
for item in range(3):
pwd=input('请输入密码:')
if pwd = '123':
print('密码正确')
break
else:
print('密码错误')
else:
print('对不起,三次密码均输入错误')
若输入123,break退出,则不会显示'对不起,三次密码均输入错误',反之,当密码连续输入错误,for循环次数用尽,则显示'对不起,三次密码均输入错误'。
while和for搭配使用也类似。
2、列表
列表是一个大容器可以存储N个元素,方便对这些数据进行整体操作。相当于其他语言中的数组。
序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0 ,逆向索引从-N到-1。
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
列表的创建
(1)使用方括号,如 lst=['physics', 'chemistry', 1997, 2000 ]
(2)使用内置函数list() ,如lst2=list('physics', 'chemistry', 1997, 2000)
利用下表或索引获取列表的值
list1[0]= 'physics'
获取值的索引
print(list1.index('physics') ) #返回列表中相同元素的第一个元素的索引值
3、列表切片(是源列表片段的拷贝)
格式:列表名[start:stop:step]
切片范围[start,stop),默认step为1
lst1=[10,20,30,40,50,60,70,80]
print(lst1[1:6:1] # [20,30,40,50,60]
print(lst1[1:6:2] # [20,40,60]
print(lst1[::-1] # [80,70,60,50,40,30,20,10]
4、列表元素的查询
判断指定元素在列表中是否存在
元素 in 列表名
元素 not in 列表名
列表元素的遍历
for 迭代变量 in 列表名:
……(具体操作)
5、列表元素的查询
append() :在列表的末尾添加一个元素
extend():在列表的末尾至少添加一个元素
insert():在列表的任意位置添加一个元素
切片:在列表的任意位置至少添加一个元素
lst=[10,20,30]
lst2=['hello','world']
lst.append(lst2) # [10,20,30,['hello','world']]
lst.extend(lst2) # [10,20,30,'hello','world']
lst.insert(1,90) # lst变为[10,90,20,30,'hello','world']
6、列表元素的删除
lst=[10,20,30,40,50,60,30]
lst.remove(30) # [10,20,40,50,60,30]
lst.pop(1) # [10,40,50,60,30]
lst[1:3]=[] # [10,60]
lst.clear() #[]
del lst #lst已经被删除
7、列表元素的修改
为指定索引的元素赋予新值
为指定的切片赋予新值
lst=[10,20,30,40]
lst[2]=100 # lst变为[10,20,100,40]
lst[1:3]=[300,400,500,600] # lst变为[10,300,400,500,600,40]
8、列表的排序
sort():列表中的所有元素默认按从小到大的顺序进行排序,指定reverse=True可以降序排序
调用内置函数sorted():指定reverse=True可以降序排序,调用该函数进行排序,原列表不发生变化,会生成一个新的列表对象
lst=[20,40,10,98,54]
lst.sort() # lst变为[10,20,40,54,98]
lst.sort(reverse=True) # lst变为[98,54,40,20,10]
lst.sort(reverse=False) # lst变为[10,20,40,54,98]
desc_list=sorted(lst,reverse=True) # desc_list为[98,54,40,20,10]
9、列表生成式(生成列表的公式)
lst=[i*i for i in range(1,10)]
print(lst)
>>>[1,4,9,16,25,36,49,64,81]