python中列表数据类型_python基础数据类型一(列表)

2023-11-13

列表

列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.

比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型:

列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,]]

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,

32位python的限制是 536870912 个元素,

64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

lst = [1,2,3,"meet",[1,2,3]]

我们定义了一个列表,我们现在来看看内存中是怎样存储的

lst我们就可以想象成一个书包,书包中存放了衣服,电脑,书,钱包,钱包中放的是身份证,公交卡,家门钥匙

1 列表的索引

列表和字符串一样也拥有索引:

lst = ['刘德华','周润发','周杰伦','向华强']

print(lst[0]) # 列表中第一个元素

print(lst[1]) # 列表中第二个元素

print(lst[2]) # 列表中第三个元素

注意:列表是可以进行修改的,这里和字符串不一样

lst[3] = '王健林'

print(lst)

字符串修改

s = '王思聪'

s[0] = '李'

print(s)

结果:

Traceback (most recent call last):

File "D:/python_object/path2/test.py", line 1076, in

s[0] = '李'

TypeError: 'str' object does not support item assignment

2 列表的切片

lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]

print(lst[0:3]) # ['麻花藤', '王剑林', '马芸']

print(lst[:3]) # ['麻花藤', '王剑林', '马芸']

print(lst[1::2]) # ['王剑林', '周鸿医'] 也有步长

print(lst[2::-1]) # ['马芸', '王剑林', '麻花藤'] 也可以倒着取

print(lst[-1:-3:-2]) # 倒着带步长

3 列表的增删改查

注意 list和str是不一样的. lst可以发生改变. 所以直接就在原来的对象上进行了操作

追加模式

lst = ["麻花藤", "林俊杰", "周润发", "周芷若"]

print(lst)

lst.append("wusir")

print(lst)

插入模式

lst = ["麻花藤", "张德忠", "孔德福"]

lst.insert(1, "刘德华") # 在1的位置插入刘德华. 原来的元素向后移动一位

print(lst)

迭代添加

# 迭代添加

lst = ["王志文", "张一山", "苦海无涯"]

lst.extend(["麻花藤", "麻花不疼"])

print(lst)

删除

pop 通过下标删除元素(默认删除最后一个)

lst = ["麻花藤", "王剑林林", "李李嘉诚", "王富贵"]

print(lst)

lst.pop()

deleted = lst.pop()

print('被删除的',deleted)

print(lst)

el = lst.pop(2) # 删除下标位2的元素

print(el) # 被删除的元素

print(lst)

remove 通过元素删除

lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]

lst.remove('王剑林')

print(lst)

结果:

['麻花藤', '李嘉诚', '王富贵']

lst.remove('哈哈') # 删除不存在的元素

结果:

Traceback (most recent call last):

File "D:/python_object/path2/test.py", line 1115, in

lst.remove('哈哈') # 删除不存在的元素

ValueError: list.remove(x): x not in list

clear 清空

lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]

lst.clear()

print(lst)

结果:

[]

修改

索引切片修改

# 修改

lst = ["太白", "太黑", "五色", "银王", "⽇天"]

lst[1] = "太污" # 把1号元素修改成太污 print(lst)

lst[1:4:3] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步长不是1, 要注意元素的数

print(lst)

lst[1:4] = ["我是哪个村的村长王富贵"] # 如果切片没有步长或者步长是1. 则不用关心个数

print(lst)

查询

列表是一个可迭代对象,所以可以进行for循环

lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]

for i in lst:

print(i)

结果:

麻花藤

王剑林

李嘉诚

王富贵

反转

lst = [1,2,3,4,5]

lst.reverse()

排序

lst = [1,2,3,4,5]

lst.sort() # 升序

lst.sort(reverse=True) # 降序

查找

lst = [1,2,3,4,5]

lst.index(3) # 存在就返回索引,不存在就报错

统计

lst = [1,23,4,5,6,]

lst.count(23) # 统计23出现的次数

list +

lis = [1,2,3]

lst1 = [4,5,6]

print(id(lis))

print(id(lst1))

print(id(lis + lst1))

list *

lst = [1,2,3]

print(lst * 5)

print(id(lst))

print(id(lst * 5))

列表在进行乘法的时候元素都是共用

列表的嵌套

注意:采用降维操作,一层一层的看就好

lst = [1,'太白','wusir',['麻花疼',['可口可乐'],'王健林']]

# 找到wusir

print(lst[2])

# 找到太白和wusir

print(lst[1:3])

# 找到太白的白字

print(lst[1][1])

# 将wusir拿到,然后首字母大写 在扔回去

s = lst[2]

s = s.capitalize()

lst[2] = s

print(lst)

# 简写

lst[2] = lst[2].capitalize()

print(lst)

# 把太白换成太黑

lst[1] = lst[1].replace('白','黑')

# 把麻花疼换成麻花不疼

lst[3][0] = lst[3][0].replace('疼','不疼')

print(lst)

# 在可口可乐后边添加一个雪碧

lst[3][1].append('雪碧')

print(lst)

你需要存储大量的数据,且需要这些数据有序的时候。制定一些特殊的数据群体:按顺序,按规则,自定制设计数据

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

python中列表数据类型_python基础数据类型一(列表) 的相关文章

  • 扩展欧几里得算法详解

    为了介绍扩展欧几里得 我们先介绍一下贝祖定理 即如果a b是整数 那么一定存在整数x y使得ax by gcd a b 换句话说 如果ax by m有解 那么m一定是gcd a b 的若干倍 可以来判断一个这样的式子有没有解 有一个直接的应
  • c花体复制_可复制花体字大全?

    匿名用户 1级 2017 12 01 回答 花体需要柔软的有弹性的笔尖去表现粗细的变化 用较细的笔尖尖端去表现游丝的生动 因而对于花体英文书写来说重要的是笔尖而非笔杆 新手建议使用诸如Gillot 404 hunt101 56 22b hi
  • vue实现简单的登入功能

    html部分
  • vue自定义指令的创建和使用

    1 bind 只调用一次 指令第一次绑定到元素时调用 用这个钩子函数可以定义一个绑定时执行一次的初始化动作 2 inserted 被绑定元素插入父节点时调用 父节点存在即可调用 不必存在于document中 3 update 被绑定于元素所
  • 华为IC岗笔试刷题含答案(2)

    目录 单选 多选 判断 单选 1 的目的都是关注单元模块的集成 功能组合 模块间的接口及时序 sub chip本身的设计功能和规格正确性 A 集成验证 IT B FPGA原型验证 C 系统验证ST D 单元验证UT 2 关于多bit信号的异
  • react学习之完善官网游戏教程

    react学习之完善官网游戏教程 1 在游戏历史记录列表显示每一步棋的坐标 格式为 列号 行号 2 在历史记录列表中加粗显示当前选择的项目 3 使用两个循环来渲染出棋盘的格子 而不是在代码里写死 hardcode 4 添加一个可以升序或降序
  • 203实验室启动conda

    启动conda 环境 由于我们没有conda init 以后每次启动都需要用这个命令 source miniconda3 bin activate
  • CentOS 编译错误+配置错误解决方法集合

    ERROR the HTTP XSLT module requires the libxml2 libxslt yum y install libxml2 libxml2 dev yum y install libxslt devel 1
  • 基于OpenCV的简易实时手势识别(含代码)

    基于OpenCV的简易实时手势识别 1 基本信息介绍 1 1实验步骤 1 2效果展示 2 肤色检测 二值化 开运算 高斯模糊 2 1 flip 函数原型 2 2cvtColor 函数原型 2 3split 函数原型 2 4GaussianB
  • C++ stack容器-50-栈容器基本概念和常用接口

    接着学习下一个容器 stack 栈容器 当然后面还要学习一个队列容器 两个有点相似一般一起对比和学习 本篇主要学习栈容器的基本概念和常用接口的基本使用 1 什么是stack stack是一种先进后出 First In Last Out FI
  • 开发中遇到不好解决的问题记录

    1 本地和测试和真实模拟数据 本地连接生产环境且登录相关用户token 都重现不了 后面管理员账号转交成功了 重现不了用户报的错
  • 【MAC终端UI自动化】pyautogui.click,图像识别定位不准排查

    原始代码 点不到图片位置 x y pyautogui locateCenterOnScreen image 1 png pyautogui click x y 排查一 没有鼠标点击的权限 打开系统偏好设置 gt 安全与隐私 gt 在 允许下
  • 国家医保服务平台js逆向(SM4+SM2)

    网站 aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL25hdGlvbmFsSGFsbFN0LyMvc2VhcmNoL21lZGljYWwtc2VydmljZT9jb2RlPTkwMDAwJmZsYWc9ZmFsc2UmZ
  • 梯度下降算法介绍

    最优化 Optimization 在我们的日常生活中扮演着重要角色 最优化意味着找到问题的最优解 在机器学习中 通过训练集数据找到最优解 并在验证集上进行检测 许多机器学习算法都需要用到最优化 例如线性回归 linear regressio
  • Flutter中MethodChannel/EventChannel的原理

    前言 Flutter开发中或多或少都需要和原生端做一些交互 Flutter SDK中也为开发者提供了MethodChannel EventChannel实现了Flutter调用原生端以及原生端调用Flutter MethodChannel
  • 爬虫第一篇——Anaconda与jupyter安装配置与使用

    Anaconda与jupyter安装配置与使用 1 anaconda安装 进入官网下载 1 进去之后选择与自己电脑版本相匹配的版本下载 比如我的电脑是win10 64位 点击之后下载 下载完成后打开所在文件夹 右键 管理员身份运行 点击fi
  • Ice Skating CodeForces - 217A(并查集基本操作)

    题意 给出n个点的坐标 如果两个点x相同或者y相同 则两点可以联通 问你最少加几条线 能使全部点联通 AC代码 include
  • web前端顶岗实习总结报告_web前端年度工作总结范文

    web前端年度工作总结范文 导语 WEB前端是现在it行业是一件伤脑力和高报酬的工作 下面小编整理了web前端年度工作总结范文 欢迎参考借鉴 web前端年度工作总结 从入职到现在 我在导师的指导下走上了前端之路 在这段时间的学习和项目中使我
  • angularJS的文件的下载

    一 使用window location href url的方式 这种方式可以获取到要下载的文件 但是当下载的文件不存在 或者下载过程中后台报错的话会发生跳转 二 使用 http实现异步无刷新的下载文件 1 http method post

随机推荐

  • FRP进阶篇之安全认证

    目录 一 前言 二 通信加密 1 概述 2 使用 三 BasicAuth 鉴权 1 概述 2 使用 2 1 客户端配置 2 2 启动客户端 2 3 效果验证 四 TLS双向身份验证 1 概述 2 使用 2 1 生成证书 2 2 服务端配置
  • Google Mock启蒙篇matcher详细尽说明

    Google Mock启蒙篇 2 Google C Mocking Framework for Dummies 翻译 来自 Koala s blog 时间 2012 08 06 19 24 04 原文链接 http quweiprotoss
  • Linux---多线程、线程池

    多线程 线程概念 线程就是进程中的一条执行流 负责代码的执行调度 在linux下线程执行流是通过pcb实现的 一个进程中可以有多个pcb 这些pcb共享进程中的大部分资源 所以线程被称为一个轻量级进程 Notes 进程是系统进行资源分配的基
  • 点云渲染的颗粒感和背景色相关

    很奇怪 在加alpha通道时 当背景是黑色时 黑色点云特别显示颗粒感 而背景色是灰色偏白时 颗粒感消失 看来是审美观很重要啊
  • Android 13 - Media框架(6)- NuPlayer

    上一节我们通过 NuPlayerDriver 了解了 NuPlayer 的使用方式 这一节我们一起来学习 NuPlayer 的部分实现细节 ps 之前用 NuPlayer 播放本地视频很多都无法播放 所以觉得它不太行 这两天重新阅读发现它的
  • Ubuntu常用命令大全

    目录 1 文件及目录操作命令 2 磁盘及系统操作 3 文件压缩及解压命令 4 网络命令 5 帮助命令 1 文件及目录操作命令 pwd 显示用户当前所处的目录 ls 列出目录下的文件清单 cd 改变当前目录 cd 返回上一级目 cd 进入根目
  • altium designer(AD)封装焊盘等间距排列

    使用环境 蓝色粗体字为特别注意内容 1 软件环境 Win7 32 bit AD Altium Designer 10 39 我们在使用AD Altium Designer 绘制封装库的时候 可能需要等间距排列很多焊盘 如果手工排列的话不仅费
  • 集中式和分布式

    集中式 VXLAN网络中 L3网关集中在一组或几组交换机上 与防火墙 LB 各类服务器相连的Leaf交换机的VTEP 只作为VXLAN的L2网关 分布式 Network Overlay分布式VXLAN网络中 所有Leaf节点物理交换机都具备
  • mysql数据库自动重新连接_数据库连接池自动重新连接问题

    http sailorls blogchina com 2606862 html tomcat连接池自动重新连接问题 Tag Tag tomcat 连接池 重新连接 在以往的开发中 常常遇到tomcat连接池断掉后 比如网络断线 无法自动重
  • 大文件上传断点续传具体实现

    是什么 不管怎样简单的需求 在量级达到一定层次时 都会变得异常复杂 文件上传简单 文件变大就复杂 上传大文件时 以下几个变量会影响我们的用户体验 服务器处理数据的能力 请求超时 网络波动 上传时间会变长 高频次文件上传失败 失败后又需要重新
  • java循环删除文件数组失败

    背景 后台java处理从服务器下载已有的N个文件成临时文件 压缩成压缩文件后 重新上传新的压缩文件 循环删除临时文件数组 file delete 只删除成功最后一个 过程 已确认无未关闭的流 无占用文件资源 循环删除就是只删除最后一个 删除
  • canvas学习(十):font字体设置

    canvas中的字体设置比较简单 这里就不说别的了 直接上实例代码 window nl ad function var myCanvas document getElementById myCanvas if myCanvas getCon
  • IntelliJ IDEA 的chatGPT插件 Bito

    1 chatGPT爆火 最近你是否听说过 ChatGPT 这个词 它指的是一种基于深度学习技术的人工智能语言生成模型 自从2018年由OpenAI发布以来 ChatGPT就备受关注 甚至在2022年成为了全球最强AI模型之一 2 chatG
  • Chrome 谷歌浏览器账户无法登录、注册

    Chrome 谷歌浏览器账户无法登录 注册 背景 步骤 1 2 3 4 5 6 亲测有效 但这只是其中一种 背景 通过某些方法 登录了Google浏览器 注册Google账号时发现 点击登录或者注册后 网页没有任何响应 通过查询网上资料后
  • C语言初学:比较两个数的大小

    比较两数大小 1 利用if else输出较大值 include
  • Java设计模式-解释器模式

    解释器模式 在软件开发中 会遇到有些问题多次重复出现 而且有一定的相似性和规律性 如果将它们归纳成一种简单的语言 那么这些问题实例将是该语言的一些句子 这样就可以用 编译原理 中的解释器模式来实现了 虽然使用解释器模式的实例不是很多 但对于
  • element 表格嵌套 switch 踩坑

    因为项目需求 需要在表格中插入开关 当前的组件并不支持 手写了个简易demo 记录一下踩坑历程
  • 网站架构演变过程之微服务概念描述

    传统架构 传统的SSH架构 分为三层架构 web控制层 业务逻辑层 数据库访问层 传统架构也就是单点应用 就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构 业务没有进行拆分 都写同一个项目工程里面 一般是适合于个人或者是小
  • 企业使用VMware vSphere进行服务器虚拟化的经验分享

    企业使用VMware vSphere进行服务器虚拟化的经验分享 对于很多中小企业来说 虚拟化已经成为节省IT开支的一种重要手段 下面就根据公司Vmware虚拟化产品部署案例 同大家来详细分享一下在使用vSphere产品组建虚拟化数据中心的一
  • python中列表数据类型_python基础数据类型一(列表)

    列表 表是python的基础数据类型之一 其他编程语言也有类似的数据类型 比如JS中的数 组 java中的数组等等 它是以 括起来 每个元素用 隔开而且可以存放各种数据类型 列表是python中的基础数据类型之一 其他语言中也有类似于列表的