Python的列表篇(上)

目录

一、列表的概念

二、创建列表

三、访问列表

 四、切片操作

1、概念

2、功能

五、列表的遍历

 六、列表的排序

1、sort()方法

2、sorted()方法

 3、reverse()方法

 七、列表元素的增、删、改

1、添加列表元素

 2、删除列表元素

 3、修改列表元素

八、实例——刮刮乐


一、列表的概念

1、列表的所有元素放在一对方括号中,相邻元素之间使用逗号分隔

2、同一个列表中元素的数据类型可以各不相同,可以同时包含整数、实数、复数、字符串等基本类型的元素,也可以包含列表、元组、字典、集合、函数或其他任意对象

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)

 (3)pop()方法:移除列表中的某个元素,如果不指定具体元素,那么移除列表中的最后一个元素

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个刮奖区,每个刮奖区对应的兑奖信息分别为“谢谢惠顾”、 “一等奖”、“二等奖”、“三等奖”中任意一个,大家只能刮开其中一个区域

2、代码例子

#刮刮乐
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、代码效果

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五秒法则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值