列表以及遍历

第3节列表以及遍历

3.1列表的特性:有序,元素可以重复,可以存放多种类型

注:索引是从0开始(开头起始)

也可以从-1开始(结尾起始)

3.2修改、添加和删除元素

修改

motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles[0]='ducati'  #将motorcycles中索引为0的honda修改为ducati
print(motorcycles)

附加

motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.append('ducati') #在列表末尾添加元素ducati
print(motorcycles)

也可用创建一个空列表,再一个个添加元素

插入

motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.insert(0,'ducati')  #在索引为0的元素前面添加元素ducati
print(motorcycles)

删除

根据索引删除元素但不可使用它

motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
del motorcycles[1]  #删除索引为1的元素
print(motorcycles)

删除列表末尾的元素并使用它(弹出元素)

popped_motorcycle=motorcycles.pop()  #定义被方法pop()删除的元素
print(motorcycles)  #打印原列表
print(popped_motorcycle)  #打印被删除的元素

根据值删除元素并使用它的值(弹出元素)

motorcycles=['honda','yamaha','suzuki','ducati']
too_exepensive='ducati'  #定义要删除的元素
motorcycles.remove(too_exepensive)  #删除被定义的元素
print(motorcycles)  #打印原列表
print(f"\nA{too_exepensive.title()} is too expensive for me") #将被删除的元素插入句子中并换行打印这个句子

3.3组织列表(在并非所有值都是小写时,按字母排序要复杂一点)

使用sort()方法对列表永久排序(按字母顺序排序)

cars=['bmw','audi','toyota','subaru']
cars.sort()
print(cars)

按与字母顺序相反的顺序排列元素(向sort()方法传递函数reverse=True)

cars=['bmw','audi','toyota','subaru']
cars.sort(reverse=True)
print(cars)

使用函数sorted()对列表临时排序(字母顺序)

print("\nHere is the sorted list:")
print(cars)
print("\nHere is the original list again:")
print(cars)

倒着打印列表

cars=['bmw','audi','toyota','subaru']
print(cars)
cars.reverse()
print(cars)

确定列表的长度

cars=['bmw','audi','toyota','subaru']
len(cars)    #列表长度用列表元素的个数表示
print(len(cars))

3.4遍历整个列表

magicians=['alice','david','carolina']
for magician in magicians: #(1)   #for循环语句重复执行(1)和(2)的代码行
   print(magician) #(2)

3.5创建数值列表

使用函数range()

for value in range(1,6):  #会循环打印出1,2,3,4,5
   print(value)

for value in range(7):  #只指定一个参数时,会从0开始打印
   print(value)
numbers=list(range(1,5))  #使用函数list()将range()的结果直接转化为列表
print(numbers)
even_numbers=list(range(2,11,2))
#第2个2是指定的步长,此时range函数会从2开始然后不断加2直到等于或超过终值
print(even_numbers)

函数range()可以创建几乎任何需要的数集

squares=[]
for value in range(1,11):
   square=value **2  #对value的每一个值进行乘方运算
   squares.append(square)  #将每一个运算后的值加入到空白列表中去
print(squares)

对数字进行简单的统计计算

digits=[1,2,3,4,5,6,7,8,9,0]
min(digits)       #求出列表中的最小值
print((min(digits)))
max(digits)       #求出列表中的最大值
print((max(digits)))
sum((digits))     #求和
print(sum(digits))

列表解析

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

squares=[value2 **2 for value2 in range(1,11)]
print(squares)

3.6多维容器(多种形式的容器和数据类型可以共存于一个列表)

list_a=[32,423,523,324,123,54,67,'Jack']
list_b=['Job', 'Bob', 'Steven',123,8656]   #二维列表
list_x=[[1,7,4,9,4],list_a,list_b,'Kin',54,(7,43,2,98),8]   #多维列表
print(list_x)
print(list_x[1])   #打印列表list_X中索引为1元素
print((list_x[0][3]))  #打印列表list_x中索引为0的元素中的索引为3的子元素

3.7使用列表的一部分

切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引

players=['charles','martina','michael','florence','eli']
print(players[0:4])

也可以通过负数索引来打印末尾的任意切片

players=['charles','martina','michael','florence','eli']
print(players[-3:])

如果没有指定第一个索引,python将自动从列表开头开始

也可以在方括号内指定第三个值,这个值用来告诉python在指定范围内每隔多少个元素提取一个

遍历切片

遍历列表的部分元素,可以在for循环中使用切片

players=['charles','martina','michael','florence','eli']
print("Here are the first three players on my team:")
for player in players[:3]:
   print(player.title())

复制列表

要想复制列表,可创建一个包含整个列表的切片

players=['charles','martina','michael','florence','eli']
players2=players[:]
print(players2)

3.8元组(相当于不可更改的列表,使用圆括号来标识)

定义元组

dimensions=(200,50)
print(dimensions[0])
print(dimensions[1])

严格意义上来讲,元组是由逗号标识的,哪怕定义一个只有一个元素的元组,也要在这个元素末尾加上逗号

例如my_t=(3,)

遍历元组中的所有值

dimensions=(200,50)
for dimension in dimensions:
   print(dimension)

给储存元组的变量赋值

dimensions=(200,50)
print("Original dimensions:")
for dimension in dimensions:
   print(dimension)
dimensions=(400,100)
print("\nModified dimensions:")
for dimension in dimensions:
   print(dimension)

 

posted @ 2021-11-16 10:21  仓颉cahr  阅读(160)  评论(0编辑  收藏  举报