Python的列表篇(上)
一、列表的概念
1、列表的所有元素放在一对方括号中,相邻元素之间使用逗号分隔
3、 一对空的方括号表示空列表
二、创建列表
1、方括号直接创建
2、通过list()函数把元组、range对象、字符串、字典、集合及map对象、zip对象、enumerate对象或其他类似对象转换为列表3、通过内置函数、标准库函数或扩展库函数来返回列表,例如:内置函数sorted()、标准库函数random.sample()、扩展库函数jieba.lcut()
>>> list((3, 5, 7, 9, 11)) # 将元组转换为列表 >>> list(range(1, 10, 2)) # 将range对象转换为列表 >>> list(map(str, range(10))) # 将map对象转换为列表 >>> list(zip('abcd', [1,2,3,4])) # 将zip对象转换为列表 >>> list(enumerate('Python')) # 将enumerate对象转换为列表 >>> list(filter(str.isdigit, 'a1b2c3d456')) # 将filter对象转换为列表 >>> list('hello world') # 将字符串转换为列表,每个字符转换为列中的一个元素 >>> list({3, 7, 5}) # 将集合转换为列表,集合中的元素是无序的 >>> x = list() # 创建空列表 >>> x=[1,2,3] >>> del x # 删除列表对象 >>> x # 对象删除后无法再访问,抛出异常
三、访问列表
1、列表、元组和字符串都属于有序序列,其中元素有严格的先后顺序,用户可以使用整数作为下标来随机访问其中任意位置上的元素
2、列表、元组和字符串都支持双向索引
(1)有效索引范围为[-L,L-1],其中L表示列表、元组或字符串的长度
(2)正向索引:0表示第1个元素,1表示第2个元素,以此类推
(3)反向索引:-1表示最后1个元素,-2表示倒数第2个元素,以此类推
(4)超出有效范围时,代码会抛出异常提示下标越界data = list(range(10)) print(data) print(data[0]) # 第一个元素的下标为0 print(data[1]) # 第二个元素的下标为1 print(data[-1]) # -1表示最后一个元素的下标 print(data[15]) # 15不是有效下标,代码抛出异常
四、切片操作
1、概念
(1)用来获取列表、元组、字符串等有序序列中部分元素的一种语法
(2)格式:2个冒号分隔的3个数字组成,[start:end:step]①第一个数字start:切片开始位置(默认0)
②第二个数字end:切片截止(但不包含)位置(默认为列表长度)
③第三个数字step:步长(默认1),省略步长时,还可以同时省略第二个冒号
(3)step为负整数时,表示反向切片,start从后往前到end
2、功能
(1)适用于列表、元组、字符串和range对象
data = list(range(20)) print(data[:]) # 获取所有元素的副本 print(data[:3]) # 前三个元素 print(data[3:]) # 下标3之后的所有元素 print(data[::3]) # 每3个元素选取1个 print(data[-3:]) # 最后3个元素 print(data[:-5]) # 除最后5个元素之外的所有元素
(2)作用于列表时(列表的强大功能,不建议初学者过多使用,因此这里就没有拓展实例啦)
①可以截取列表的任何部分,并返回得到一个新列表
②增、删、改列表中的部分元素
五、列表的遍历
1、列表是一个可迭代对象
2、可以通过for循环遍历元素
list_one = ['章萍', '李昊', '武田', '李彪'] for i in list_one: print(f"嗨,{i}!今日促销,赶快来抢购吧!")
六、列表的排序
1、sort()方法
(1)能够对列表元素排序,与内置函数sorted()一样支持key参数和reverse参数
(2)格式:sort(key=None, reverse=False)
参数如下:key -- 指定的排序规则,reverse -- 控制列表元素排序的方式
2、sorted()方法
(1)可以按升序方式排列列表元素,该方法的返回值是升序排列后的新列表
(2)代码例子
li_one = [4, 3, 2, 1] li_two = sorted(li_one) print(li_one) # 原列表 print(li_two) # 排序后列表
3、reverse()方法
(1)用于将列表中的元素倒序排列,即把原列表中的元素从右至左依次排列存放
(2)代码例子
li_one = ['a', 'b', 'c', 'd'] li_one.reverse() print(li_one)
七、列表元素的增、删、改
1、添加列表元素
(1)append()方法:在列表末尾添加新的元素
list_one = [1, 2, 3, 4] list_one.append(5) print(list_one)
(2) extend()方法:在列表末尾一次性添加另一个列表中的所有元素,即使用新列表扩展原来的列表
list_str = ['a', 'b', 'c'] list_num = [1, 2, 3] list_str.extend(list_num) print(list_str)
(3)insert()方法:将元素插入列表的指定位置
names = ['baby', 'Lucy', 'Alise'] names.insert(2, 'Peter') print(names)
2、删除列表元素
(1)del语句:删除列表中指定位置的元素
names = ['baby', 'Lucy', 'Alise'] del names[0] print(names)
(2)remove()方法:移除列表中的某个元素,若列表中有多个匹配的元素,只会移除匹配到的第一个元素
chars = ['h', 'e', 'l', 'l', 'e'] chars.remove('e') print(chars)
numbers = [1, 2, 3, 4, 5] numbers.pop() # 移除最后一个元素 numbers.pop(1) # 移除索引为1的元素 print(numbers)
3、修改列表元素
(1)通过索引获取元素并对该元素重新赋值
(2)代码例子
names = ['baby', 'Lucy', 'Alise'] # 将索引为0的元素'baby'重新赋值为'Harry' names[0] = 'Harry' print(names)
八、实例——刮刮乐
1、假设现在有一张刮刮乐,该卡片上面共有8个刮奖区,每个刮奖区对应的兑奖信息分别为“谢谢惠顾”、 “一等奖”、“二等奖”、“三等奖”中任意一个,大家只能刮开其中一个区域
#刮刮乐 import random#使用乱序 reward =['谢谢惠顾','谢谢惠顾','谢谢惠顾','谢谢惠顾','谢谢惠顾','一等奖','二等奖','三等奖'] random.shuffle(reward) print(reward) num = int(input('输入刮去位置(1-8):')) if 1 <=num<= 8: result = reward[num - 1] print (result) else: print("输入有误! ")3、代码效果
Python概述及应用领域,PyCharm、Jupyter notebook的安装与使用,编码规范,标准库、扩展库对象的导入与使用