''' 列表操作 ''' ''' 创建列表 有两种方式: 1.直接使用赋值运算符创建列表 2.使用list()函数,list函数用于将可迭代类型的数据转换成列表。 例如 range对象,字符串,元组等 ''' # data=[1,2,3,4,5] stuple = (10, 32, 73, 24, 15, 66, 90, 67, 54) data = list(stuple) ''' 访问列表元素 切片操作 ''' print('输出列表的内容:', data) print('输出所以为1的元素:', data[1]) print('返回包含原列表中的所有元素的新列表:', data[::]) print('逆序输出列表元素:', data[::-1]) print('输出列表索引为奇数的元素:', data[::2]) print('输出列表索引为偶数的元素:', data[1::2]) print('指定切片开始和结束的索引:', data[1:4]) print('结束位置的值大于列表长度时,从列表尾部截断:', data[2:100]) print('开始位置的值大于列表长度时,返回空列表:', data[100:]) ''' 遍历列表 有两种方式: 1.直接使用for循环实现 2.使用for循环和enumerate()函数实现 ''' # 1.直接使用for循环实现 for item in data: print(item, end=' ') # 2.使用for循环和enumerate()函数实现。可以实现同时输出索引值和元素内容 for index, item in enumerate(data): print('索引为%d,元素为%d' % (index, item)) ''' 添加操作 有四种实现方法: 1.用加号"+",将两个列表相连接 2.用append()方法,元素添加到列表的尾部 3.用insert()方法,向列表的指定位置添加元素,但执行效率也没有append()高 4.用extend()方法,将一个列表添加到另一个列表的后面 总结:append,insert,extent这三个方法都可以对列表的元素进行操作,没有返回值, 直接修改了原数据对象 而用“+”将两个列表相连接,需要创建新的列表对象,从而需要消耗额外的内存 ''' # 1.用加号"+",将两个列表相连接 data1 = list(range(4)) data2 = ['a', 'b', 'c'] print('data1+data2=%s' % (data1 + data2)) # 2.用append()方法,元素添加到列表的尾部 data1.append('x') data1.append('y') print('data1:', data1) # 3.用insert()方法,向列表的指定位置添加元素 data1.insert(1, '小明') data1.insert(4, '小强') print('data1:', data1) # 4.用extend()方法,将一个列表添加到另一个列表的后面 data2.extend('w') print('data2:', data2) data2.extend(['o', 'p', 'q']) print('data2:', data2) ''' 修改元素 通过索引获取元素,然后再为其重新赋值 ''' data4 = ['小汪', '小明', '小强', '旺财'] data4[2] = '小红' print('将索引为%d的元素修改为%s:' % (2, '小红'), data4) ''' 对列表进行统计计算 1.获取指定元素出现的次数 2.获取指定元素首次出现的位置索引 3.统计数值列表的元素和 ''' # 1.获取指定元素出现的次数 data5 = [12, 32, 34, 12, 43, 56, 32, 32] print("元素%d在列表中的重复次数为%d次。" % (12, data5.count(12))) print("元素%d在列表中的重复次数为%d次。" % (32, data5.count(32))) # 2.获取指定元素首次出现的位置索引 print("元素%d在列表中的第%d个位置。" % (32, data5.index(32) + 1)) # 3.统计数值列表的元素和,以切片的方式计算 print('整个列表的元素和:%d' % sum(data5)) print(data5[1:4]) print('从第一个位置到第四个位置的元素和:', sum(data5[1:4])) ''' 对列表元素进行排序操作 1.使用列表对象的sort()方法实现,默认为升序排列 2.使用内置的sorted()函数实现 3.使用reverse()方法将列表逆序输出 ''' # 1.使用列表对象的sort(key=None,reverse=False)方法实现,默认为升序排列,无返回值 # 注意:参数key表示比较键,例如key=str.lower,表示排序时不区分大小写 # reverse=False:表示按升序排列;reverse=True:表示按降序排列 data6 = [43, 67, 54, 78, 90, 21, 34] data6.sort() print('按照升序输出列表:', data6) data6.sort(reverse=True) print('按照降序输出列表:', data6) # 2.使用内置的sorted()函数实现,有返回值 print('使用内置函数sorted()按照升序输出列表:', sorted(data6)) print('使用内置函数sorted()按照降序输出列表:', sorted(data6, reverse=True)) # 3.使用reverse()方法将列表逆序输出,相当于从后往前输出元素,无返回值 data6.reverse() print("使用reverse()方法将列表逆序输出:", data6) ''' 删除元素 有三种实现方式: 1.根据索引删除元素:del语句,pop()方法 2.根据元素值删除:remove()方法 3.clear()方法清空列表,但还保留列表的对象 4.删除整个列表:del语句 ''' # 1.根据索引删除元素 del data4[1] print('删除索引为%d的元素:' % 1, data4) data4.pop(2) print('删除索引为%d的元素:' % 2, data4) # 2.根据元素值删除 data4.remove('小红') print('将元素为%s删除:' % '小红', data4) #3.clear()方法清空列表,但还保留列表的对象 data4.clear() print('执行清空列表后:',data4) # 4.删除整个列表 # del语句在实际开发中并不常用,因为Python自带的垃圾回收机制会自动销毁不用的列表. del data