【PY从0到1】第三节 列表
# 3 列表 # 1> 下面这就是一个列表 aabbccdd = ['ee','ff','gg'] # 列表可以储存数据,包含其中元素可以有很多,是可修改、有次序的。 # 下面展示一下两套索引。 # 0 1 2 # aabbccdd = ['ee','ff','gg'] # -3 -2 -1 # 可以用两种方式抽取列表的元素,如下。 h = aabbccdd[0] print(h) i = aabbccdd[-2] print(i) # 对应的输出结果如下 # ee # ff # 强调一点,索引从0开始。 # 2> 修改、添加和删除列表中的元素 # 修改可以用下列语句,通俗的讲应该叫替换。 aabbccdd[0] = 'kk' print(aabbccdd) # 输出结果为:['kk', 'ff', 'gg'] # 添加元素可以使用下面的方法,默认添加到列表的最后一位。 aabbccdd.append('uu') print(aabbccdd) # 输出结果为:['kk', 'ff', 'gg', 'uu'] # 习惯上,会先创建一个空列表。然后再用append()添加元素。 # 也可以使用方法insert()将元素插入到指定位置,具体如下。 aabbccdd.insert(1,'pp') print(aabbccdd) # 输出结果为:['kk', 'pp', 'ff', 'gg', 'uu'] # 如果知道元素的索引,可以直接用del 删除对应元素 del aabbccdd[0] print(aabbccdd) # 输出结果为:['pp', 'ff', 'gg', 'uu'] # 使用pop()删除元素,通俗讲是叫提取。默认提取最后一个元素。 popped_aabbccdd = aabbccdd.pop(1) print(aabbccdd) print(popped_aabbccdd) # 输出结果为: # ['pp', 'gg', 'uu'] # ff # 如果知道元素名称,可以用remove()直接删除。 # remove()不具有提取功能。 # 如果列表中有重复的元素,方法remove()只删除索引较小的那一个。 # 如果列表中有重复的元素就需要用if循环解决。 aabbccdd.append('gg') print(aabbccdd) aaccddee = aabbccdd.remove('gg') print(aabbccdd) print(aaccddee) # 对应的结果如下: # ['pp', 'gg', 'uu', 'gg'] # ['pp', 'uu', 'gg'] # None # 3> 列表排序 # 用方法sort()对列表进行排序,可以永久改变列表顺序。 aabbccdd.sort() print(aabbccdd) # 输出结果为:['gg', 'pp', 'uu'] # 传入reverse = True,可以相反顺序排序。 aabbccdd.sort(reverse = True) print(aabbccdd) # 输出结果为:['uu', 'pp', 'gg'] # 直接将列表传入sorted()可以临时改变列表排序,也同样适用于方法reverse,语句如下。 # print(sorted(aabbccdd,reverse = True)) # 方法reverse()可以倒着打印列表,但可以随时恢复到原来的顺序,只需要再调用这个方法即可。 aabbccdd.reverse() print(aabbccdd) # 对应结果如下:['gg', 'pp', 'uu'] # 4> 确定列表长度 # 使用方法len()可以确定列表长度。 print(len(aabbccdd)) # 输出结果为:3 # 5> 遍历列表 # 下面重新定义一个新的列表 abc = ['a','b','c','d','e'] for cc in abc: print(cc) # 简单两行代码就可以实现遍历的功能,结果如下 # a # b # c # d # e # 使用for时要注意后面有个冒号,如,for cc in abc:<---- # 6> 使用函数range()创建数值列表 # 可以使用list()和range()配合直接生成数值列表 numbers = list(range(1,10)) print(numbers) # 注意,使用range()生成的数字是有头无尾的,所以上述代码的结果如下。 # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 7> 对数字列表的简单统计 # 使用方法max()、min()、sum()对列表秋最大值,最小值和总和 print(min(numbers)) print(max(numbers)) print(sum(numbers)) # 结果如下。 # 1 # 9 # 45 # 8> 列表切片 # 切片就是说提取列表的一部分,且不改变原列表。 # 基本形式是:[起始索引:终止索引],也遵循有头无尾原则。 # 举例如下。 print(numbers[:]) #又叫复制列表 print(numbers[2:8]) print(numbers[:8]) print(numbers[:-1]) print(numbers[2:]) # 结果如下 # [1, 2, 3, 4, 5, 6, 7, 8, 9] # [3, 4, 5, 6, 7, 8] # [1, 2, 3, 4, 5, 6, 7, 8] # [1, 2, 3, 4, 5, 6, 7, 8] # [3, 4, 5, 6, 7, 8, 9] # 请读者自行对比这五种切片的异同。 # 9> 元组 # 他是一种特殊的列表,规则限定其中的元素无法被改变,只能被再次赋值。 # 元组是用()表达 yuanzu1 = ('s','ss','sss') yuanzu1['s'] = 'ssss' # 这时,Python就会报错,如下。 # TypeError: 'tuple' object does not support item assignment # 可以看到元组里的元素确实不能被修改。 # 但是对其做赋值操作是可以的。 yuanzu1 = ('s','ss','sss') yuanzu1 = ('ssssss') print(yuanzu1) # 结果为:ssssss