05 列表
1.else
"""
1)完整的for循环:
for 变量 in 序列:
循环体
else:
代码段
2) 完整的while循环:
while 条件语句:
循环体
else:
代码段
else的存在并不会影响原来的循环的执行;
如果循环自然死亡,循环结束后会执行else后面的代码段;如果循环是因为遇到break而结束的,那么else后面的代码就不会执行
"""
num = 11
for x in range ( 2 , int ( num ** 0.5 ) + 1 ) :
if num % x == 0 :
print ( num, '不是素数' )
break
else :
print ( num, '是素数' )
2.认识列表
"""
列表是Python中的容器型数据类型;
将[]作为容器的标志,里面多个数据用逗号隔开:[数据1, 数据2, 数据3, ...]
列表是可变的(元素的个数、元素的值和顺序都可以改变 - 支持增、删、改);列表是有序的(支持下标操作)
补充:元素 - 容器中每个独立的数据就是这个容器中的每个元素
len(列表) - 获取列表中元素的个数
"""
list1 = [ ]
print ( type ( list1) , len ( list1) )
list2 = [ 100 ]
list3 = [ 98 , 34 , 89 , 99 , 56 , 100 , 91 , 70 ]
list4 = [ 'EZ' , '瑞文' , '亚索' , '劫' ]
list5 = [ '小明' , 18 , False , 78.9 ]
print ( list5)
list6 = [ 10 , [ 20 , 30 ] ]
print ( len ( list6) )
3.查操作
"""
1)语法:
列表[下标] - 获取列表中指定下标对应的元素
列表 - 任何结果是列表的表达式,一般是保存列表的变量或者具体某一个列表
[] - 固定写法
下标 - 下标又叫索引,下标就是列表中元素的位置信息。
列表中的每个元素都有两个下标值分别是:从前往后数从0开始不断增加的下标值、从后往前从-1开始不断减小的下标值
注意:这儿的下标不能越界
"""
movies = [ '小森林' , '复联3' , '肖生克的救赎' , '蜘蛛侠' , '忍者神龟' , '泰坦尼克号' , '阿凡达' ]
print ( movies[ 2 ] , movies[ - 5 ] )
print ( movies[ - 1 ] )
"""
方法1:
for 元素 in 列表:
循环体
方法2 - 通过遍历下标来遍历列表
for 下标 in range(len(列表)):
循环体: 列表[下标]
方法3:
for 下标,元素 in enumerate(列表):
循环体
"""
for x in movies:
print ( 'x:' , x)
scores = [ 78 , 19 , 80 , 92 , 99 , 45 , 67 , 87 , 49 ]
for x in scores:
if x < 60 :
print ( x)
count = 0
for x in scores:
if x >= 60 :
count += 1
print ( '及格人数:' , count)
movies = [ '小森林' , '复联3' , '肖生克的救赎' , '蜘蛛侠' , '忍者神龟' , '泰坦尼克号' , '阿凡达' ]
for x in range ( len ( movies) ) :
print ( x, movies[ x] )
for x in range ( - 1 , - len ( movies) - 1 , - 1 ) :
print ( x, movies[ x] )
for x in range ( len ( movies) - 1 , - 1 , - 1 ) :
print ( x, movies[ x] )
movies = [ '小森林' , '复联3' , '肖生克的救赎' , '蜘蛛侠' , '忍者神龟' , '泰坦尼克号' , '阿凡达' ]
for a, b in enumerate ( movies) :
print ( a, b)
"""
列表[开始下标:结束下标:步长]
说明:
开始下标、结束下标 - 用来确定切片的有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)
步长 - 确定获取方式(1.正负决定是从前往后取还是从后往前取 2.绝对值大小决定是一个一个的取还是跳着取)
"""
"""
第一步:先确定结果是否为空(看从开始下标到结束下标对应的方向和步长对应的方式是否一致,如果不一致,结果直接为[])
第二步:确定有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)
第三步:根据步长在有效范围内获取元素
绝对值为1:一个一个的取
绝对值为2:取1个跳1个再取1个
绝对值为3:取1个跳2个再取1个
"""
movies = [ '小森林' , '复联3' , '肖生克的救赎' , '蜘蛛侠' , '忍者神龟' , '泰坦尼克号' , '阿凡达' ]
print ( movies[ 1 : - 2 : 1 ] )
print ( movies[ 4 : 0 : 2 ] )
print ( movies[ - 2 : 2 : - 2 ] )
games = [ '英雄联盟' , '王者荣耀' , '开心消消乐' , '炉石传说' , '部落冲突' , '阴阳师' , '刀塔' , '原神' , '绝地求生' ]
print ( games[ 1 : - 3 : - 2 ] )
print ( games[ - 4 : - 1 : - 1 ] )
print ( games[ - 6 : 0 : 2 ] )
print ( games[ - 7 : - 2 : 3 ] )
print ( games[ 2 : 8 : 3 ] )
print ( games[ - 1 : 3 : - 2 ] )
"""
第一步:确定开始下标(将目标数据中第一个元素对应的下标作为开始下标)
第二步:确定步长(根据方向确定正负;根据取的时候跳过的方式确定绝对值)
第三步:确定结束下标(如果步长为正,结束下标是取到的最后一个元素后面那个元素的下标;
如果步长为负,结束下标是取到的最后一个元素前面那个元素的下标)
"""
movies = [ '小森林' , '复联3' , '肖生克的救赎' , '蜘蛛侠' , '忍者神龟' , '泰坦尼克号' , '阿凡达' ]
print ( movies[ 2 : - 2 : 1 ] )
print ( movies[ 1 : - 1 : 2 ] )
print ( movies[ - 2 : 0 : - 2 ] )
"""
列表[开始下标:结束下标:步长]
a.省略步长:列表[开始下标:结束下标] - 相当于步长为1
b.省略开始下标:列表[:结束下标:步长] - 表示从头开始(头有可能是第一个元素也有可能是最后一个元素)
c.省略结束下标:列表[开始下标::步长] - 从开始的位置开始一直取完
"""
games = [ '英雄联盟' , '王者荣耀' , '开心消消乐' , '炉石传说' , '部落冲突' , '阴阳师' , '刀塔' , '原神' , '绝地求生' ]
print ( games[ 2 : - 2 ] )
print ( games[ : - 2 : 3 ] )
print ( games[ : - 2 : - 1 ] )
print ( games[ 3 : : - 1 ] )
print ( games[ 3 : : 2 ] )
print ( games[ : 3 ] )
print ( games[ 3 : ] )
print ( games[ : : - 1 ] )
4.列表的增删改
list1 = [ 10 , 20 ]
print ( list1)
list1. append( 100 )
print ( list1)
scores = [ 98 , 34 , 89 , 99 , 56 , 100 , 91 , 70 ]
new_scores = [ ]
for x in scores:
if x < 60 :
new_scores. append( x)
print ( new_scores)
nums = [ 10 , 50 , 100 ]
print ( nums)
nums. insert( 2 , 60 )
print ( nums)
nums = [ 10 , 50 , 100 ]
del nums[ 1 ]
print ( nums)
nums = [ 10 , 50 , 100 ]
nums. remove( 50 )
print ( nums)
nums = [ 10 , 50 , 100 , 50 , 20 ]
nums. remove( 50 )
print ( nums)
nums = [ 10 , 50 , 100 , 50 , 20 ]
x = nums. pop( )
print ( nums, x)
nums = [ 10 , 50 , 100 , 50 , 20 ]
x = nums. pop( - 2 )
print ( nums, x)
nums = [ 10 , 50 , 100 , 50 , 20 ]
print ( nums)
nums[ 0 ] = 10000
print ( nums)