列表是由一系列按特定顺序排列的元素组成,其中可以包含数字,字符串,元组,字典等多种类型的数据。在python中,由[]表示列表,并用逗号分隔其中的元素。
bicycles = ['trek','cannondale','redline']
print(bicycles) #['trek','cannondale','redline']
访问列表元素,列表的第一项都是由0开始的
bicycles = ['trek','cannondale','redline'] print(bicycles[0])#-->trek 打印出第一个元素 print(bicycles[2])#-->redline 打印出第三个元素 #提取出值后我们可以用一个变量保存值 #然后我们就可以使用这个变量做字符串的任何操作了,因为以上存入的都是字符串-- item=bicycles[0] print(item.title())#-->Trek 首字母大写列表操作--增删改
1.增:列表末尾添加用append函数、插入的话用insert函数bicycles = ['trek','cannondale','redline'] bicycles.append('QQ') print(bicycles) #-->['trek','cannondale','redline','QQ'] 可以看见多了一个QQ了吧 #不过append是在列表的末尾添加元素,但是我们向插入怎么办呢 bicycles = ['trek','cannondale','redline'] bicycles.insert(0,'QQ') print(bicycles)#-->['QQ','trek','cannondale','redline'] 可以看见在列表的0号位置插入了一个QQ2.改:有时候,列表的元素需要更新,直接给那个位置的元素赋值
bicycles = ['trek','cannondale','redline'] bicycles[0]='QQ' print(bicycles)#-->['QQ','cannondale','redline']3.删:我们有两种方式删除元素,1.del元素 2.列表.pop(可空形参) 3.根据值删除
bicycles = ['trek','cannondale','redline'] del bicycles[0]#-->['cannondale','redline'] 这种方式直接删除了第一个元素 #以上代码的缺陷就是你只能删除,但是删除的元素你却不能转存 bicycles = ['trek','cannondale','redline'] bike = bicycles.pop() print(bike)#-->redline 这种方式默认弹出最后的末尾元素 #同时我们可以传入参数指定弹出某个位置的值 bicycles = ['trek','cannondale','redline'] bike = bicycles.pop(0) print(bike)#-->trek 这种方式默认弹出指定的0号位置的元素 bicycles = ['trek','cannondale','redline'] bicycles.remove('trek') print(bicycles)#-->['cannondale','redline'] 已删除了指定元素trek #remove()只会删除第一个指定的值,当要完全删除列表中的指定值是请是使用遍历,示例: while bicycles['trek']:#当数组中包含了'trek'元素时继续循环 bicycles.remove('trek') #以上的代码原数组都会相应的删除你删除了的元素 ```4.组织列表
(1)排序:分为两种,1.不改变自身顺序,产生一个排好序的副本 2.将原数组排序1.永久排序 python列表内置了一个sort()方法用来排序,感兴趣的可以测测它排序的效率与速度 ```python cars=['bmw','audi','toyota','subaru'] cars.sort() print(cars)#-->['audi','bmw','subaru','toyota'] 可以发现输出的字符串以字母顺序排列 #以上为正序排序,当我们需要逆序排列时 cars=['bmw','audi','toyota','subaru'] cars.sort(reverse=True)#我们指定形参reverse的值为true,就可以时列表逆序 print(cars)#-->['toyota','subaru','bmw','audi'] 字符串逆序排列 ``` 2.临时排序 sorted()函数,其作用是保留原来的排列顺序,同时返回给我们特定的书顺序 ```python #正序 cars=['bmw','audi','toyota','subaru'] print(sorted(cars))#-->['audi','bmw','subaru','toyota'] print(cars)#-->['bmw','audi','toyota','subaru'] 原数组不变 #逆序 cars=['bmw','audi','toyota','subaru'] print(sorted(cars,reverse=True))#-->['toyota','subaru','bmw','audi'] print(cars)#-->['bmw','audi','toyota','subaru'] 原数组不变(2)倒序:让原有数组倒序
cars=['bmw','audi','toyota','subaru'] cars.reverse() print(cars)#-->['subaru','toyota','audi','bmw'] 原数组会发生变化 #这种方法会改变原数组,但是我们在执行一遍就可以得到之前的数组啦 ```(3)确定列表的长度
cars=['bmw','audi','toyota','subaru'] print(str(len(cars)))#-->4 长度为4(4)列表访问:
cars=['bmw','audi','toyota','subaru'] print(cars[len(cars)-1]))#-->subaru 最后一个元素 print(cars[-1]))#-->subaru 最后一个元素 print(cars[-2]))#-->toyota 倒数第2个元素 #由此可见我们要访问后面的元素时可以提供一个负数的索引值,倒一即-1 #只有当cars数组为空时cars[-1]才会报错操作列表
遍历列表
cars=['bmw','audi','toyota','subaru'] for car in cars: print(car)#-->依次换行输出列表元素,注意缩进 #-->bmw #-->audi #-->toyota #-->subaru ``` for car in cars这是一个循环,car会一次取出cars存入,第一次car取出bmw并赋值自生,此时会执行print(car),输出bmw,第二次代码会回到for car in cars取出第二个元素audi,并赋值自身,然后print(car),输出audi,依次类推 ***Warning:*** for car in cars:后的代码有一段缩进,那表示这是循环的子代码,如果子代码有多行必须在每一行前加一个缩进,每一次循环都会把子代码执行一遍才会进入下一个循环 cars=['bmw','audi','toyota','subaru'] for car in cars:#如果下一行没有缩进的话会报错,同时之一最后的一个:冒号是必须的 content = "I want to buy a " + car print(content) print('But I have only $10')#没有缩进,处于循环之外,等循环结束后才会执行 #-->I want to buy a bmw #-->I want to buy a audi #-->I want to buy a toyota #-->I want to buy a subaru #-->But I have only $10'创建数值列表:常用range()这个函数,创建一个任意长度的数字
for value in range(3) print(value) #-->0 #-->1 #-->2 #只提供一个数子的话默认从0开始计算,到传入的实参的值结束 for value in range(1,3) print(value) #-->1 #-->2 #则会表示从1开始,到3结束,注意输出结果,只输出到2 ``` #使用range()创建数值列表 nums=list(range(1,6)) print(nums) #-->[1,2,3,4,5] ``` 指定步长(每个数相差的值) ```python nums=list(range(2,11,2)) print(nums) #-->[2,4,6,8,10] #该列表从2开始,不断加2,直到值超过11结束对数字列表进行简单的统计计算
digits=[1,2,3,4,5,6,7,8,9,0] print(str(min(digits)))#-->0 最小值 print(str(max(digits)))#-->9 最小值 print(str(sum(digits)))#-->45 最小值列表解析
item=[value **2 for value in range(1,11)] print(item)#-->[1,4,9,16,25,36,49,64,81,100] #结构:[表达式 for循环] #for循环会循环表达式,然后存入数组中使用列表的:切片,须知道列表的第一个元素和最后一个元素,在其范围内切出一个新的列表
players = ['a','b','c','d','e'] print(players[0:3])#-->['a','b','c'] 起始索引为0,终止索引为3 #以上可以简写 print(players[:3])#-->['a','b','c'] 前一个不写默认起始索引为0 print(players[2:])#-->['c','d','r'] 后一个不写默认终止索引为最后的一个元素索引 print(players[-3:])#-->['c','d','r'] -3表示倒数第三个元素 ``` (切片用法1.遍历) players = ['a','b','c','d','e'] for i in players[:3]: print(i) #-->a b c #以上可以对一个列表进行切片然后在输出,原列表仍旧不会变 ``` (切片用法2.复制列表) players = ['a','b','c','d','e'] new_players=players[:]#从头到尾复制 for i in new_players: print(i) #-->a b c d e #以上可以对一个列表进行切片然后在输出,原列表仍旧不会变 #如果我们简单的复制,那么两个变量会只想同一个内存地址,修改的就是同一个值了 players = ['a','b','c','d','e'] new_players=players new_players[0]='z' for i in players: print(i) #-->z b c d e for i in new_players: print(i) #-->z b c d e #两个都变了
元组
元组看起来很像列表,但是列表是可以修改的,但是元组不可以,但是也可以重新定义来改变其值
示例:#定义元组: dimensions=(200,50) print(dimensions[0])#-->200 print(dimensions)#-->(200,50) #遍历 for item in dimensions: print(item) #-->200 50 #修改元组的值 print(dimensions)#-->(200,50) dimensions=(300,250) print(dimensions)#-->(300,250)
评论列表(0条)