Python的列表篇(上)

一、列表的概念

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

Python 文章被收录于专栏

Python概述及应用领域,PyCharm、Jupyter notebook的安装与使用,编码规范,标准库、扩展库对象的导入与使用

全部评论
感谢大神分享的python知识
点赞 回复 分享
发布于 2022-10-13 16:05 陕西

相关推荐

双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务