Python中列表的基本操作

2023-05-16

目录

  • 1、定义列表
  • 2、访问列表
  • 3、增删改操作
  • 4、合并列表
  • 5、列表切片
  • 6、遍历列表
  • 7、列表转换

列表通常用来存储多个数据,每一个数据之间用逗号隔开,列表中的数据被称为元素,列表的左右两边带有中括号。

1、定义列表

定义列表时初始元素可以为空,也可以定义一个有初始值的列表,列表可以存储不同的数据类型。

# 定义一个空列表
list1 = []
# 定义一个有初始值的列表 
list2 = [1, 2, 4, 3]  
# 列表可以存储不同的数据类型
list3 = [1, 2, 4, "hello"]  

2、访问列表

列表可以直接用print函数输出,也可以使用下标获取列表元素的值,也可以通过元素获取元素的下标。len()函数可获取列表长度。

list2 = [1, 2, 4, "hello"]  
print(list2)
print(list2[3])  # 通过下表获取元素值
print(list2.index("hello"))  # 通过元素或下标
print(len(list2))  # 输出list长度

输出结果为:
在这里插入图片描述

3、增删改操作

(1)新增元素
可以使用append()函数在list末尾加入新的元素;可以使用insert()函数在某个位置插入新的元素,下标从0开始。

list2 = [1, 2, 4, "hello"]  

list2.append(5)  # 在list末尾加入新的元素5
print(list2)  # 输出结果是[1, 2, 4, 'hello', 5]

list2.insert(2, 0.6)  # 在第二个和第三个元素中间插入新的元素0.6
print(list2)  # 输出结果是[1, 2, 0.6, 4, 'hello', 5]

输出结果是:
在这里插入图片描述

(2)删除操作
可以使用remove()函数删除某个元素,有重复元素默认删除第一个;也可以使用__delitem__()函数通过下标删除某个元素;也可以通过del使用下表删除某个元素。

list2=[1, 2, 0.6, 4, 'hello', 5]

list2.remove("hello")  # 删除元素"hello"
print(list2)  # 输出结果是[1, 2, 0.6, 4, 5]

list2.__delitem__(1)  # 删除元素2
print(list2)  # 输出结果是[1, 0.6, 4, 5]

del list2[3]  # 删除list最后一个元素
print(list2)  # 输出结果是[1, 0.6, 4]

输出结果是:
在这里插入图片描述

(3)修改操作
可以通过下标直接修改某个元素。

list2=[1, 0.6, 4]
list2[0] = 9  # 通过下标直接修改
print(list2)  # 输出结果是[9, 0.6, 4]

输出结果是:
在这里插入图片描述

4、合并列表

list相加得到的是一个新的list。

l1 = [3, 45, 6]
l2 = [5, 6]
print(l1 + l2)  # 输出结果是[3, 45, 6, 5, 6]

输出结果是:
在这里插入图片描述

5、列表切片

可以通过切片的方式对列表进行截取、反转等操作。一些切片的特殊操作如下所示。

list[-1]:返回最后一个数据
list[:1]:返回01的数据,故返回第一个数据
list[1:]:返回从10的数据,故返回第二个到最后一个的数据(不包含结束索引位置0list[-1:]:返回从-10的数据,故返回最后一个数据
list[:-1]:返回从0-1的数据,故返回第一个到倒数第二个的数据(不包含结束索引位置-1list[::1]:表示步长为1,步长大于0时,返回序列为原顺序
list[::-1]: 表示从右往左以步长为1进行切片,返回序列为倒序
list[::2]: 表示从左往右步长为2进行切片

(1)截取

l3 = [3, 45, 6, 5, 6]
print(l3[1:3])  # 从下标[1,3)开始截取,左闭右开,输出结果是[45, 6]
print(l3[2:])  # 截取下标2到末尾的元素,输出结果是[6, 5, 6]
print(l3[:2])  # 截取list前两个元素,输出结果是[3, 45]
print(l3[-2:])  # 截取list末尾两个元素,输出结果是[5, 6]

输出结果是:
在这里插入图片描述
(2)反转

l3 = [3, 45, 6, 5, 6]
print(l3[::-1])  # 输出结果是[6, 5, 6, 45, 3]

# 字符串可以看作是一个特殊的列表
l4 = "abcfgdjskls"
print(l4[1])  # 输出结果是b
print(l4[::-1])  # 输出结果是slksjdgfcba

输出结果为:
在这里插入图片描述

6、遍历列表

可以通过元素值遍历,也可以通过元素下标遍历。

# 成员遍历,只适合读取元素的值
for h in l3:
    print(h)
    
# 下标遍历
for i in range(len(l3)):
    print(l3[i])  

通过下标遍历,可以改变元素的值

l4 = [3, 4, 6, 5, 9]
for i in range(len(l4)):
    l4[i] += 1
    print(l4)  # 最后输出的是[4, 5, 7, 6, 10]

输出结果:
在这里插入图片描述

7、列表转换

列表转为tuple或set可直接通过对应函数转化。

l6 = [4, 4, 4, 6, 10, 4, 5, 7, 12]
print(list(l6)) # 依旧是列表
print(tuple(l6))  # 转为元组
print(set(l6))  # 通过set函数可以去重

输出结果为:
在这里插入图片描述
list也可以转为字符串,字符串类型的list可以直接通过join方法转换,其他类型需要先转为字符串

l6 = [4, 4, 4, 6, 10, 4, 5, 7, 12]
str6 = "".join(str(l6))
print(str6)
print("str6的类型:", type(str6))
l7 = ["123", "wef", "ok"]
str7 = ",".join(l7)
print(str7)
print("str7的类型:", type(str7))

输出结果为:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中列表的基本操作 的相关文章

  • 翠儿。让流永远运行

    我对 tweepy python 库比较陌生 我想确保我的流 python 脚本始终在远程服务器上运行 因此 如果有人能够分享如何实现这一目标的最佳实践 那就太好了 现在我正在这样做 if name main while True try
  • 没有任何元数据的 zip 文件

    我想找到一种简单的方法来压缩一堆文件 而无需任何文件元数据 例如时间戳 这zip命令似乎总是保留元数据 我没有找到禁用元数据的方法 我希望解决方案是一个命令或最多一个 python 脚本 谢谢 正如一些帖子已经指出的那样 zip 标头中的大
  • Django:如何测试“HttpResponsePermanentRedirect”

    我正在为我的 django 应用程序编写一些测试 在我看来 它使用 HttpResponseRedirect 重定向到其他一些网址 那么我该如何测试呢 姜戈TestCase类有一个方法assertRedirects https docs d
  • 在 Numpy 中切片后确定结果数组的形状

    我很难理解在 numpy 中切片后如何确定结果数组的形状 例如 我使用以下简单代码 import numpy as np array np arange 27 reshape 3 3 3 slice1 array 1 2 1 slice2
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 如何从 PyCharm 项目中获取我的“exe”[重复]

    这个问题在这里已经有答案了 通过 PyCharm 在 Python 上编写一些项目 我想从中获取一个exe文件 我尝试过 另存为 gt XXX exe 但是 当我尝试执行它时出现错误 此类操作系统不支持该文件 附注 我有win7 x64 它
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • Python 中的 @staticmethod 与 @classmethod

    方法和方法有什么区别装饰的 https peps python org pep 0318 with staticmethod http docs python org library functions html staticmethod和
  • 如何在Python和Selenium中通过标签名称或id获取元素[重复]

    这个问题在这里已经有答案了 我正在尝试使用 Python 和 Selenium 获取输入 但它向我显示错误 我该如何解决这个错误 inputElement send keys getStock getStocklFunc 0 Error i
  • 如何列出 python PDB 中的当前行?

    在 perl 调试器中 如果重复列出离开当前行的代码段 可以通过输入命令返回到当前行 点 我无法使用 python PDB 模块找到任何类似的东西 如果我list如果我自己离开当前行并想再次查看它 似乎我必须记住当前正在执行的行号 对我来说
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • Python组合目录中的所有csv文件并按日期时间排序

    我有 2 年的每日数据分成每月文件 我想将所有这些数据合并到一个按日期和时间排序的文件中 我正在使用的代码组合了所有文件 但不按顺序 我正在使用的代码 import pandas as pd import glob os import cs
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21
  • 使用 Python 生成类似于 Messenger 或 kik 代码的圆形二维码

    我可以使用 Python 生成圆形 QR 码 就像 Facebook Messenger 或 kik 使用的那样吗 我访问了很多网站 但找不到这种类型的二维码 默认情况下 Python 生成方形 QR 码 但在我的项目中我想要圆形 QR 码

随机推荐

  • Ubuntu20.04下更改用户名和主机名

    知道root密码的登陆root账户 xff0c 不知道的先修改root密码 1 修改root密码 span class token variable sudo span span class token variable passwd sp
  • (毕设踩坑记录)SpringBoot项目中采用Java、Python调用百度智能云接口实现文字转为语音。

    登录百度智能云 xff1a 百度智能云 智能时代基础设施 搜索短文本在线合成 进入后点击立即使用 创建应用 根据个人需要填写相关内容即可 之后便可在管理应用界面看见自己创建的应用 请记录下API Key和Secret Key 编写如下py代
  • 查阅中文字符的Unicode编码

    jshell gt Integer toHexString 39 中 39 返回一个中文字符的Unicode编码 28 61 61 gt 34 4e2d 34 jshell gt 39 u4e2d 39 使用Unicode编码方式定义字符
  • 干了十多年SAP顾问,聊聊从SAP最佳业务实践看企业管理

    干了十多年SAP顾问 xff0c 聊聊从SAP最佳业务实践看企业管理 干了十多年的SAP实施顾问 xff0c 经历了各种行业 xff08 机械 电力 石油 化工 制造 消费品等等 xff09 各种企业 xff08 国企 外企 民营 xff0
  • ESKF IMU+GPS融合定位 MATLAB、c++实现

    1 在展示公式和代码之前 xff0c 先理清一下旋转矩阵 xff0c 四元素 xff0c 轴角 xff0c 旋转向量之间的关系 假设一个旋转向量为 xff1a 将旋转向量表示成轴角形式 所以 轴角转换到旋转矩阵形式 轴角转换成四元数形式 反
  • VNC图形终端和分辨率设置

    在服务端通过vncserver 命令启动vnc 后 xff0c 控制台输出 xff1a New 39 favey 1 root 39 desktop is favey 1 Starting applications specified in
  • 什么是耦合,解耦?

    打个比方 xff1b 两兄弟的工资都共同存在一个银行卡里面 xff0c 假如有一天 xff0c 弟弟需要用钱 xff0c 那么需要找哥哥商量一下 xff0c 然后再取钱 xff0c 这就是耦合 xff1b 后来某天弟弟发现他自己的工资可以单
  • UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initial

    训练一个卷积神经网络时 xff0c 报这个错误 错误显示代码 xff1a 无法获取卷积算法 这可能是因为cuDNN初始化失败 xff0c 所以请尝试查看上面是否打印了警告日志消息 UnknownError Failed to get con
  • ARM指令集--ADD SUB LDR STM LDM STM LDIA STMDB

    ADD add r0 r1 4 r0 61 r1 43 4 SUB sub r0 r1 4 r0 61 r1 4 sub r0 r1 r2 r0 61 r1 r2 LDR LDR 寄存器 内存 LDR R0 61 0x50000050 r0
  • OpenCV图像基础操作一

    Mat类分为了两个部分 1 矩阵头和指向矩阵数据部分的指针 2 data就是指向矩阵数据的指针 下面是VS调试显示属性 xff1a flags xff1a flags是int类型 xff0c 共占32位 xff0c 从低位到高位 xff1a
  • Git超详解七 储藏 (看不懂算我输)

    储藏 1 储藏2 添加储藏3 恢复储藏4 删除储藏5 查看所有储藏6 储藏未跟踪的文件 1 储藏 有时候我们代码写到一半 xff0c 需要切换到另外一个分支上去工作 但是我本地这个工作还没做完 xff0c 如果我现在做一个commit那么会
  • 从零开始安装ubuntu18+P4+ONOS

    1 安装VMware Tools xff08 前面VM虚拟机安装Ubuntu的教程太多 xff0c 就不写了 xff09 先从虚拟机下载好 xff0c 然后将压缩包里的文件夹移动出来 xff08 可以用解压或者直接点开压缩包 xff0c 移
  • SLAM库学习: 从因子图到GTSAM

    SLAM库学习 xff1a 从因子图到GTSAM 一 从贝叶斯网络到因子图优化1 贝叶斯网络2 因子图3 非线性最小二乘问题4 线性最小二乘问题 1 QR分解 2 Cholesky 分解 二 iSAM2和贝叶斯树三 GTSAM实战1 Pos
  • 激光SLAM后端优化总结之图优化

    激光SLAM后端优化总结之图优化 1 图的稀疏性与边缘化2 位姿图3 因子图4 滤波与图优化 优化问题 xff0c 可以用图的方式表示 xff0c 图的节点是需要优化的变量 xff0c 边是优化变量之间的约束 节点可以是位姿 xff0c 也
  • GVINS源码解析

    GVINS是基于VINS MONO写的 xff0c 视觉 IMU部分与VINS MONO类似 xff0c 可参考我的前一篇文章VINS MONO学习 这篇文章主要解析与GNSS有关的部分 持续更新中 文章目录 estimator node
  • centos go

    1 安装 mercurial包 root 64 localhost yum install mercurial 2 安装git包 root 64 localhost yum install git 3 安装gcc root 64 local
  • SD-WAN技术实现方案(细节)-企业侧

    1组网模型 1 1组网场景 underlay 北京HUB xff1a CPE双线接入MPLS网络和宽带网络 xff0c 宽带网络具有全球IP 杭州HUB xff1a CPE双线接入MPLS网络和移动网络 xff0c 宽带网络具有全球IP S
  • win10应用商店无法下载报错,代码为0x80073D0A

    第一步按下组合键Windows 43 X组合键 xff0c 选择 命令提示符 xff08 管理员 xff09 xff0c 执行sfc scannow xff0c 等待修复完成 第二步将防火墙开启 第三步再去应用商店重新下载安装 产生问题原因
  • KVM虚拟机导出和导入

    KVM安装 Ubuntu20 安装KVM span class token function sudo span apt span class token function install span qemu kvm libvirt dae
  • Python中列表的基本操作

    目录 1 定义列表2 访问列表3 增删改操作4 合并列表5 列表切片6 遍历列表7 列表转换 列表通常用来存储多个数据 xff0c 每一个数据之间用逗号隔开 xff0c 列表中的数据被称为元素 xff0c 列表的左右两边带有中括号 1 定义