首页 > 编程语言 >Python 列表(详解)

Python 列表(详解)

时间:2024-12-25 09:26:27浏览次数:5  
标签:推导 Python list1 list 列表 索引 详解 print

 列表

列表的特点:有序,可重复,长度可变(增删改查),异构,可切片,可遍历。

列表的基本语法:列表名=[元素]

list = ['apple', 'banana', 'pineapple']

列表的作⽤是⼀次性存储多个数据,并且列表可以存储不同类型的数据

一:列表的增删改查:

增加:

append():增加指定数据到列表中

names = ['1', '2', '3']
# 在列表的尾部追加⼀个元素"4"
names.append('4')
# 打印列表
print(names)

extend():列表结尾追加数据,如果数据是⼀个序列, 则将这个序列的数据逐⼀添加到列表

list1 = ['1', '2', '3']  # extend⽅法增加
list2 = ['4', '5']
list1.extend(list2)
print(list1)

insert():指定位置新增数据

list1 = ['1', '2', '3'] 
list1.insert(1,'100')
print(list1)

删除:

pop():删除指定下标的数据(默认为最后⼀个),并返回该数据

list = ['1', '2', '3']
my_list = list.pop(1)
print(list)
print(my_list)

remove():移除列表中某个数据的第⼀个匹配项。

list = ['1', '2', '3']
list.remove('1')
print(list)

clear(): 清空列表

list=['1','2','3']
print(list)
list.clear()
print(list)

查找:

in 或者not in

index():指定数据所在位置的下标


list=[1,2,3,4,5,6,7,8,9]
list2=[1,2,3]
print(list.index("123"))

count():统计指定数据在当前列表中出现的次数

list=[1,2,3,4,5,6,7,8,9]
list2=[1,2,3]
print(list.count(9))

修改:

列表[索引] = 修改的值

list[0]=100

sort():对列表序列进⾏排序

list3 = [3, 1, 4, 1, 5, 9, 2, 6]
list3.sort()
print(list3)

reverse():将数据序列进⾏倒叙排列

list3 = [3, 1, 4, 1, 5, 9, 2, 6]
list3.reverse()
print(list3)

二:列表的切片:

列表的切片与字符串的切片相同

基本语法:列表名[开始索引,结束索引,步长] 

参数说明:

start:表示切片的起始位置索引。如果省略该参数,则默认从字符串的开头开始切片,即start=0。如果start为负数,则从字符串末尾开始计数,例如-1表示最后一个字符,-2表示倒数第二个字符,以此类推。

stop:表示切片的结束位置索引,但切片操作不包括该索引对应的字符。如果省略该参数,则默认切片到字符串的末尾。同样,如果stop为负数,也是从字符串末尾开始计数。

step:表示切片的步长,即每隔step个字符取一个字符。默认值为1,表示连续取字符。如果step为负数,则表示从右向左切片,即逆序取字符。

索引规则:

  正向索引:从字符串的开头开始,从 0 开始计数,即第一个字符的索引是 0,第二个字符的索引是 1,以此类推。

  反向索引:从字符串的末尾开始,从 - 1 开始计数,即最后一个字符的索引是 - 1,倒数第二个字符的索引是 - 2,以此类推。

list=[1,2,3,4,5,6,7,8,9]
print(list[1:4:1])

三:列表的遍历循环

用for循环将列表遍历打印输出

while循环:

list1 = ['1', '2', '3']
i = 0
while i < len(list1):
 print(list1[i])
 i += 1

for循环:

list1 = ['1', '2', '3']
for i in list1:
 print(i)

列表的可以将元组等强制转化成列表 list()

str_seq = "hello"
str_list = list(str_seq)  # ['h', 'e', 'l', 'l', 'o']
set_obj = {1, 2, 3}
list_obj = list(set_obj)  # [1, 2, 3]

列表的嵌套:

列表的嵌套:列表中⼜有⼀个列表,我们把这种情况就称之为列表嵌套

应⽤场景:要存储班级⼀、⼆、三 ,三个班级学⽣姓名,且每个班级的学⽣姓名在⼀个列表。
classes = ['第⼀个班级','第⼆个班级','第三个班级']
# ⼀班:['张三', '李四']
# ⼆班:['王五', '赵六']
# 三班:['⽥七', '钱⼋']
# 把班级和学员信息合并在⼀起,组成⼀个嵌套列表
students = [['张三', '李四'],['王五', '赵六'],['⽥七', '钱⼋']]
students[0] == ['张三', '李四']
students[0][1]
# 访问李四
print(students[0][1])
# 嵌套列表进⾏遍历,获取每个班级的学员信息
for i in students:
 print(i)

列表推导式!

推导式comprehensions(⼜称解析式),是Python的⼀种独有特性。推导式是可以从⼀个数据序列构建 另⼀个新的数据序列(⼀个有规律的列表或控制⼀个有规律列表)的结构体。 共有三种推导: 列表推导式 、 集合推导式 、 字典推导式 。 基本语法: 变量名 = [表达式 for 变量 in 列表] 变量名 = [表达式 for 变量 in 列表 if 条件] 变量名 = [表达式 for 变量 in 列表 for 变量 in 列表]

下面是列表推导式的案例

list = [x**2 for x in range(1,5)]
print(list)

list = [x for x in range(1,100) if x%2==0 and x%3==0]
print(list)

list = [x for x in range(1,100) if x%2==0 if x%3==0]
print(list)

输出结果为:

案例:定义0-9之间的列表
# 基本推导
list1 = []
for i in range(10):
 list1.append(i)
print(list1)

# 列表推导式
list1 = [i for i in range(10)]
print(list1)
执⾏原理:[i for i in range(10)] 列表推导式先运⾏表达式右边的内容: 当第⼀次遍历时:i = 0,其得到变量i的结果后,会放⼊最左侧的变量i中,这个时候列表中就是[0] 当第⼆次遍历时:i = 1,其得到变量i的结果后,会追加最左侧的变量i中,这个时候列表中就是[0, 1] ... 当最后⼀次遍历时:i = 9,其得到变量i的结果后,会追加最左侧的变量i中,这个时候列表中就是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] OK列表就讲到这里啦!

标签:推导,Python,list1,list,列表,索引,详解,print
From: https://blog.csdn.net/2301_78209919/article/details/144638214

相关文章

  • Python绘制图表
    Python提供了多种可视化库,常用的有matplotlib、seaborn和plotly等。这些库可以用于绘制各种类型的图表,如折线图、散点图、柱状图、饼图等。下面是一个使用matplotlib绘制折线图的示例:```pythonimportmatplotlib.pyplotasplt#准备数据x=[1,2,3,4,5]y=[2,4,6......
  • 经典区间线段树详解:从原理到实践
    线段树(SegmentTree)是一种非常高效的树形数据结构,用于解决区间查询和修改问题。本文将通过分步骤讲解,带领读者熟练掌握线段树的原理与实现,并探索其应用场景。引言:数组区间修改问题在一些经典问题中,比如给定一个数组,频繁地需要进行以下操作:区间查询:查询数组某一子区间内的最大......
  • python常用模块
    re模块正则表达式符号:表达符号说明.匹配所有字符串,除\n以外-表示范围[0-9]*1.匹配前面的子表达式零次或多次,匹配前面的字符0次或多次2.re.findall(“ab*”,“cabc3abcbbac”)结果:[‘ab’,‘ab’,‘a’]+匹配前面的子表达式一次或多次^匹配字符串开......
  • 零基础创建一个可以对话的人工智能,保姆级教学,提供了完整可运行的代码,感兴趣但不会pyt
    目录前言:这里提到了2种类型的对话AI教学,请根据目录按照个人情况学习     注意:本文分为2种类型的对话AI教学,分别如下:    一:调用API型    通俗解释:    专业解释:    二:自行训练模型型(更进一步开发AI)        解......
  • Java设计模式 —— 【结构型模式】组合模式(透明组合模式、安全组合模式)详解
    文章目录一、概述二、结构三、案例实现四、安全组合模式五、优缺点一、概述组合模式又名整体-部分模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形......
  • 华为机试:仿 LISP 运算 - Python实现
    华为机试:仿LISP运算_仿lisp运算华为机试-CSDN博客https://blog.csdn.net/weixin_44052055/article/details/125902077看到这一篇博文,感觉这个题目挺有意思的. 今天也做一个Python版本的.后面可能会逐步把它实现成一个Lisp解释器.importre#解析字符串(源代码),生成......
  • Java中的五种引用方式底层详解
        在GC算法的可达性算法中描述的对象引用,一般指的是强引用,即是GCRoot对象对普通对象有引用关系,只要这层关系存在,普通对象就不会被回收,而在Java中一共有五种引用关系。目录 强引用 (Strong Reference)软引用 (SoftReference)使用软引用实现简单缓存 一个实......
  • 【Python项目】用pywin32在聊天窗口发送QQ好友/群消息
    源码中涉及到的函数用法:win32clipboard.SetClipboardData(format,hMem):它需要一个格式化的数据对象和一个数据块。CF_DIB——DIB图片,它包含一个BITMAPINFO结构,然后是位图位。CF_DIF——软件领域的数据交换格式。CF_PALETTE——调色板。每当应用程序放置数据在剪贴板......
  • 【python量化教程】如何使用必盈股票API接口,获取最新实时交易数据
      一篇文章教会什么是股票量化分析   股票API接口作为一种应用程序编程接口,犹如在股票数据的提供者与使用者之间架起的一座沟通桥梁。股票市场环境错综复杂,其中蕴含着海量数据,例如股票实时价格、历史价格变动轨迹以及成交量等信息。借助股票API接口,有获取数据需......
  • Python+Vue3+Django银行信用卡额度管理系统的设计与实现
    文章目录具体实现截图项目介绍和开发技术介绍开发技术核心代码部分展示项目结构分析文章目录/写作提纲参考源码/演示视频获取方式具体实现截图项目介绍和开发技术介绍创新之处(1)系统资源闭环整合,实现了综合功能高度集成。(2)采用DJANGO框架,开发软件更加方便、......