#第二章 #1:列表 #:列表是由一系列按特定顺序排列的元素组成,你可以创建包含字母表中所有的字母,数字0-9或所有家庭成员姓名的列表 #也可以将任何东西加入列表中,其中元素之间可以将任何东西加入列表中,其中的元素之间可以没有任何关系 #建议列表通常包含多个元素,给列表指定一个表示复数的名称(如lettles,digits,names) #在python中,用方括号[] 来表示列表,并用逗号来分隔其中元素,下面是一个简单的示例,这个列表包含几种自行车 bicycles=['trek','cannondale','redline','specialized'] print(bicycles) #鉴于这不是你要让用户看到的输出,下面来介绍如何访问到列表元素 #2:访问列表元素 #列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉python即可。 #要访问列表元素,可指出列表的名称,在指出元素的索引,并将其放在方括号内 #例如,下面的代码从列表bicycles中提取第一款自行车 bicycles=['trek','cannondale','redline','specialized'] print(bicycles[0].title()) #显示的输出为trek,你还可以使用title()来让元素'trek'的格式更整洁 #索引是从0开始 而不是从1开始。 #举例子,若想要访问上述列表中的redline,则print(bicycles[2]) 以此类推 #若想要访问最后一个元素,则print([bicycles[-1]),访问倒数第二个元素为-2,以此类推 #3:使用列表中的各个值 #可像使用其他变量一样使用列表中的各个值。例如你可以使用拼接根据列表中的值来创建消息 bicycles=['trek','cennondale','redline','specialized'] message="my first bicycle was a"+bicycles[0]+"." print(message.title()) #3:修改添加,和删除元素 #3-1:修改列表元素 #修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,在指定该元素的新值,下面举个例子,摩托车列表 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) motorcycles[0]='motuoche' print(motorcycles) #你可以修改任意列表元素的值,而不仅仅是第一个元素的值 #3-2:在列表中添加元素 # .append() 是添加新的元素,是附在列表的末尾,不影响列表中的其他元素,拿上面修改列表的代码演示一遍 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) motorcycles.append('chuanqi') print(motorcycles) #你也可以创建一个空的列表,然后利用多个.appled()来添加元素,组成一个新的列表 #3-3:在列表中插入元素 #使用方法 insert() 可在列表的任意位置添加新的元素,为此你需要指定新元素的索引和值 #下面举个例子 motorcycles=['honda','yamaha','suzuki'] motorcycles.insert(0,'sanlunmotuo') motorcycles.insert(2,'silunmotuo') print(motorcycles) #在这个实例中利用.insert() 添加了两个元素 分别为列表的第一个元素和第二个元素 #3-4:从列表中删除元素 # 使用del语句删除元素 #如果知道删除元素的位置,可使用del语句来进行删除,下面举个例子 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) del motorcycles[0] print(motorcycles) #使用del语句可删除列表中的任意元素 首先要知道该元素的位置 #4-5 使用pop()删除元素 #pop()可删除列表的末尾元素,并让你接着使用它,下面看示例 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) popped_motorcycles=motorcycles.pop() print(motorcycles) print(popped_motorcycles) #上述删除方式pop(),是将删除的元素储存到一个新的变量popped_motorcycles里面,依然可以看到, #假若上述摩托车列表是按照购买时间排序的,可以使用pop()来打印一条购买信息,示例如下 motorcycles=['honda','yamaha','suzuki'] goumai=motorcycles.pop() print('这辆名叫'+'goumai'.title()+'的摩托是我最近购买的!') #上述打印出来的消息利用了pop()删除方式获取的信息,然后拼接的一条购买信息,而且还利用了元素的首字符大写 .title() #重要一点,利用pop()删除元素,必须储存到一个新的变量中 #重点,利用pop()可以删除列表中的任意元素,只需将待删除的元素位置填写到括号中即可,如果pop()括号中不填写任何东西,将会默认删除列表中最后一位元素 #下面举例删除第一位元素,并且利用所学过的拼接方法,来打印一条购买信息 motorcycles=['honda','yamaha','suzuki'] goumai1=motorcycles.pop(0) print('这辆摩托车名叫'+goumai1.title()+'.'+'是我购买的第一辆摩托车!') #注意 使用pop()删除元素后,该元素就不在此列表中了 #如果你不确定删除元素该使用pop(),还是del,就用这个判断,如果你要删除一个元素不再用任何方式使用它用del,如果在列表中删除元素后使用其他方式使用该元素用pop() #根据值删除元素 #有时候你需要删除一个元素,但你不知道该元素位置的值,知道要删除元素的名,可以利用.remove() #下面来举个列子,依旧使用上面的摩托车列表 #利用remove()根据值删除元素,只需将remove()写在需要删除列表的变量名后面,然后括号写上要删除元素 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) motorcycles.remove('yamaha') print(motorcycles) #使用remove()删除值元素时,也可接着使用它的值。下面删除一个元素,并且写上删除它的原因,并且打印出来 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) shanchu=('yamaha') motorcycles.remove('yamaha') print('删除'+shanchu.title()+'的原因是,雅马哈是日本品牌摩托车。') #在利用remove()删除元素,并且利用他组建一条新的消息,必须将删除的元素赋予一个新的变量名,然后在利用remove()在待删除元素列表中删除,然后利用删除的元素用print()组建一条新的消息 #注意remove只能删除列表中一个元素,若一个列表中出现多个该元素 需要使用循环来判断是否删除了所有这样的值,循环会在后面写出 # 组织列表 # 1:使用方法 sort()对列表永久性排序 # 创建一个汽车列表,并让其中的汽车按照字母顺序排列,假设该列表中所有值都是小写 cars=['bmw','daben','aodi','lafa'] cars.sort() print(cars) # 现在已经将汽车列表中的所有汽车按照字母顺序排列,并且再也无法恢复到原来的顺序 # 你还可以按照与字母顺序相反的顺序排列列表元素,为此 只需向sort()方法传递参数 reverse=true 看下面例子 cars=['bmw','daben','aodi','lafa'] cars.sort(reverse=True) print(cars) # 同样对列表元素排列顺序的修改是永久性的 # 使用函数sorted()对列表进行临时排序 # 要保留列表元素的排列顺序,同时以特定的顺序呈现他们,可使用函数sorted() # 函数sorted()让你能够按特定顺序显示列表元素,同时不影响他们在列表中的原始顺序 # 尝试用汽车列表来调用函数sorted()来进行一个临时排序 cars=['bmw','daben','aodi','lafa'] print("原始汽车列表:") print(cars) print("\n根据函数sorted()进行一个临时的排序:") print(sorted(cars)) print("\n再次打印恢复原始列表:") print(cars) # 调用函数sorted()后,列表元素列表的排序并没有改变,同时你也可以将列表元素进行一个字母倒序的排列方式 # 只需要将函数sorted(),括号中传递参数reverse=True # 注意并非所有值都为小写时,按字母顺序排列列表会复杂一些,可以通过title()所有单词首字符大写,或者 upper()所有字符大写,lower()所有字符小写 # 倒着打印列表 # 要反转列表元素的排列顺序,可使用方法reverse(),假设汽车列表是按照汽车购买时间进行排列的,可轻松的按照相反的顺序排列其中的汽车 cars=['bmw','daben','aodi','lafa'] print(cars) cars.reverse() print(cars) # 注意reverse(),并不是按照字母顺序反转,而是将列表中所有元素反转过来 # 方法reverse()永久性的修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需要对列表再次调用reverse()即可 # 确定列表的长度 # 使用函数len()可快速获悉列表的长度,在下面的示例中 列表包含四个元素,因此其长度为4 cars=['bmw','daben','aodi','lafa'] cars=len(cars) print(cars) # python计算列表长度数时从1开始,因此确定列表长度时,应该不会遇到差1的错误