python中list(列表)、元组和array的区别-分别什么时候使用?

Python 列表list 数组array 阅读详情


Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。列表很多操作都跟元组一样,它们的不同在于元组是只读的,那更新列表的操作,比如切片操作来更新一部分元素的操作,就不能用于元组。

在与array的比较中,值得注意的是,列表会使用更多的存储空间相对于array。

通过import array导入python的数组类型,就可以使用array类型了。

例如:

from array import array
node=array('H')
node.append(12)

python的array和C的数组很类似,它只能存储同样地数据类型的数据。它所占的存储空间的大小就是数据的大小。如果你相对一致类型的数据进行数学运算,那么,array将是一个很好的选择。并且它可以用于和C的代码做接口。或者可以说array就是披上了python外衣的C的数组。

下面介绍一下常见操作:


创建列表
sample_list = ['a',1,('a','b')]

Python 列表操作
sample_list = ['a','b',0,1,3]

得到列表中的某一个值
value_start = sample_list[0]
end_value = sample_list[-1]

删除列表的第一个值
del sample_list[0]

在列表中插入一个值
sample_list[0:0] = ['sample value']

得到列表的长度
list_length = len(sample_list)

列表遍历
for element in sample_list:
print(element)

Python 列表高级操作/技巧

产生一个数值递增列表
num_inc_list = range(30)
#will return a list [0,1,2,...,29]

用某个固定值初始化列表
initial_value = 0
list_length = 5
sample_list = [ initial_value for i in range(10)]
sample_list = [initial_value]*list_length
# sample_list ==[0,0,0,0,0]
附:python内置类型
1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
a = ["I","you","he","she"] #元素可为任何类型。

下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元 素,len-1最后一个元素
取list的元素数量
len(list) #list的长度。实际该方法是调用了此对象的__len__(self)方法。

创建连续的list
L = range(1,5) #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

list的方法
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
list 操作符:,+,*,关键字del
a[1:] #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4 #为[2,2,2,2]
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
list的复制
L1 = L #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:] #L1为L的克隆,即另一个拷贝。

list comprehension
[ <expr1> for k in L if <expr2> ]

2、dictionary: 字典(即C++标准库的map)
dict = {‘ob1′:’computer’, ‘ob2′:’mouse’, ‘ob3′:’printer’}
每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。

dictionary的方法
D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key) #有该键返回TRUE,否则FALSE
D.keys() #返回字典键的列表
D.values()
D.items()

D.update(dict2) #增加合并字典
D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常
D.clear() #清空字典,同del dict
D.copy() #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)
#第一个大返回1,小返回-1,一样返回0

dictionary的复制
dict1 = dict #别名
dict2=dict.copy() #克隆,即另一个拷贝。

3、tuple:元组(即常量数组)
tuple = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)
可以用list的 [],:操作符提取元素。就是不能直接修改元素。

4、string: 字符串(即不能修改的字符list)
str = “Hello My friend”
字符串是一个整 体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。
子字符串的提取
str[:6]
字符串包含 判断操作符:in,not in
“He” in str
“she” not in str

string模块,还提供了很多方法,如
S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start [,end]]) #反向查找
S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
S.rindex(substring,[start [,end]])#同上反向查找
S.count(substring,[start [,end]]) #返回找到子串的个数

S.lowercase()
S.capitalize() #首字母大写
S.lower() #转小写
S.upper() #转大写
S.swapcase() #大小写互换

S.split(str, ‘ ‘) #将string转list,以空格切分
S.join(list, ‘ ‘) #将list转string,以空格连接

处理字符串的内置函数
len(str) #串长度
cmp(“my friend”, str) #字符串比较。第一个大,返回1
max(‘abcxyz’) #寻找字符串中最大的字符
min(‘abcxyz’) #寻找字符串中最小的字符

string的转换

oat(str) #变成浮点数,float(“1e-1″) 结果为0.1
int(str) #变成整型, int(“12″) 结果为12
int(str,base) #变成base进制整型数,int(“11″,2) 结果为2
long(str) #变成长整型,
long(str,base) #变成base进制长整型,

字符串的格式化(注意其转义字符,大多如C语言的,略)

str_format % (参数列表)


参考文献:

http://stackoverflow.com/questions/176011/python-list-vs-array-when-to-use

http://www.cnblogs.com/dkblog/archive/2011/02/11/1980662.html

手把手教你用OpenCalib完成激光雷达与相机联合标定:从数据准备到结果可视化 本文详细介绍了使用OpenCalib工具链中的lidar2camera模块完成激光雷达与相机联合标定的全流程,包括数据准备、标定命令执行、结果验证与可视化。通过实战指南,帮助读者掌握工业级标定技术,提升自动驾驶和机器人领域的传感器融合精度。 阅读详情

相关推荐

体素坐标(voxel_coors)在mmdetection3d中的理解

体素坐标(voxel_coors)在mmdetection3d中的理解

weixin_38362784的博客 4218

【python】list列表,array数组和tuple元组

在python数据类型中,list和array都可以根据索引来取其中的元素,但是list可以用append 或者 + 来新增元素或者添加数组,而array不行。除此之外,python中list与array还有什么区别吗?例如list中的数据类不必相同的,array则是由numpy封装,存放的元素都是相同的数据类型。list是python的内置数据类型;array数组需要导入标准库才行,不属于内置类型。 1、作用不同 list是处理一组有序项目的数据结构; array数组存储单一数据类型的多维数组。

qq_32793161的博客 2100

Windows10完美驱动Apple Studio Display全攻略:从雷电转接到亮度调节(附N卡兼容列表)

本文详细介绍了在Windows10系统下如何完美驱动Apple Studio Display显示器,包括雷电接口转接方案、BootCamp驱动安装及NVIDIA显卡兼容性测试。特别推荐GTX 1660 Super等显卡,提供5K@60Hz稳定输出,并分享色彩管理及日常使用技巧,帮助用户充分发挥这款苹果显示器的性能。

weixin_29284657的博客 1090

Python当中的list和Array

在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1= [1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。通常,Numpy数组中的所有元素的类型都必须相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表,但在科学计算中,可以省掉很多循环语句,代码使用方面比Python列表简单的多。a.列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样;

理工大猪猪的博客 2119

WRF后处理避坑指南:从namelist配置到降水计算的全流程解析

本文提供了一份详尽的WRF模式后处理避坑指南,涵盖从理解wrfout文件结构、核心变量解析到累计降水计算与专业气象图绘制的全流程。重点解析了RAINC与RAINNC的正确处理方法,并分享了使用wrf-python库高效绘制位势高度叠加风场图、累计降水图等专业图表的实战技巧与代码,旨在帮助用户规避常见错误,提升后处理效率与图表质量。

weixin_29200485的博客 353

深度强化学习 | 详解基于价值的强化学习DQN算法(附Pytorch实现)

深度Q网络DQN的核心原理是通过经验回放池和目标网络技术拟合高维状态空间,是Q-Learning算法的深度学习版本,本文分析DQN的基本算法,并给出训练实例和实际案例

FRIGIDWINTER的博客 4986

python中数组array和列表list的基本用法介绍

(1)数组array: 是同类型数据的有限集合是一系列按特定顺序排列的元素组成,可以将任何数据放入列表,且其中元素之间没有任何关系。

xiaoweids的博客 1640

爬虫不宕机!2026自愈式爬虫开发(Python+AI自动应对页面改版)

传统爬虫最大的痛点是"页面一改就宕机":前端布局调整、CSS选择器失效、数据结构变化,都会导致爬虫瘫痪,需要人工逐行修改代码。2026年,基于AI的自愈式爬虫成为行业标配:通过大模型自动识别页面结构变化、适配新的元素定位规则、修复数据提取逻辑,实现"页面改版不宕机,AI自动自愈"的企业级效果。本文从零讲解如何用Python+AI构建自愈式爬虫,聚焦页面改版自适应、故障自动修复、规则动态更新三大核心能力,附带可直接落地的生产级代码。问题场景解决方案LLM生成规则格式错误。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1215

Python列表list数组array用法实例解析

在Python中,列表(List)和数组(Array)都是常用的数据类型,它们都可以用于存储多个元素。本文将详细讲解Python中列表(List)和数组(Array)的使用方法,包括创建、访问、添加、删除等操作。

1075

2025华为OD面试手撕代码真题目录及面试八股文

本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备

KJ.JK 5万+

【ARM CoreLink 系列 4 -- NIC-400 控制器详细介绍】

正常情况下,一个NIC的实现,可以包含一百多个master和几十个slave,每个master和每个slave都会有一些寄存器,这些寄存器可以被 programming,实际实践中就会对 AMIB 或者 ASIB 或者 IB,当它需要具有 programming的时候,给它指定一个node number。为什么指定Node Number呢?首先,从CPU的角度,它需要有一个1M对齐的地址空间,在这1M地址空间上,对每个ASIB或者AMIB这样的接口给它一个node number以后,

CodingCos的博客 5242

python中数组array和列表list的基本用法及区别

文章目录1. 定义2. 两者不同点3. 两者相同点4. 基本用法4.1 数组array的基本用法4.2 列表list的基本用法 1. 定义 (1)数组array: 是同类型数据的有限集合 (2)列表list: 是一系列按特定顺序排列的元素组成,可以将任何数据放入列表,且其中元素之间没有任何关系。 2. 两者不同点 (0)列表是直接可以在python中使用的;数组是python中numpy库的,所以需要import numpy后,才能使用; (1)列表中的元素数据类型可以不一样;数据中的元素数据类型必须一样;

qq_41915623的博客 1万+

分类预测 | MATLAB实现ELM极限学习机多特征分类预测(二分类)

分类预测 | MATLAB实现ELM极限学习机多特征分类预测(二分类)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 779

python元组和列表的转换-[Python] List(列表),tuple(元组)和array的区别(转)

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。列表很多操作都跟元组一样,它们的不同在于元组是只读的,那更新列表的操作,比如切片操作来更新一部分元素的操作,就不能用于元组。在与array的比较中,值得注意的是,列表会使用更多的存储空间相对于array。通过import array导入p...

weixin_39531604的博客 1535

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python列表添加元组_[Python] List(列表),tuple(元组)和array的区别(转)

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。列表很多操作都跟元组一样,它们的不同在于元组是只读的,那更新列表的操作,比如切片操作来更新一部分元素的操作,就不能用于元组。在与array的比较中,值得注意的是,列表会使用更多的存储空间相对于array。通过import array导入p...

weixin_39870132的博客 275

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python中list(列表),array(数组),tuple(元组),matrix(矩阵)的区别

对此我的理解是: 表示符号:List:[ ]、tuple:( )、array:[ ]、metrix:[ ] python中只有list与tuple,array是numpy里面的内容,metrix是二维的数组(数组可以多维) list与tuple的区别就是tuple只读,一旦定义不可修改,适合存储常量。tuple相当于是不能改变长度的list 对于array来说,通过numpy.array(...

suelta_th的博客 2759

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python 元组与数组的区别_详谈Python中列表list,元祖tuple和numpy中的array区别

1.列表list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的。列表是可以改变的,能够增加或减少,(append和del函...

weixin_42500720的博客 1392

Fluent Python Chapter 2 丰富的序列

元组的不可变仅针对元组中的引用而言,指元组的引用始终指向一个对象。若元组引用了一个可变对象,当该对象中的内容改变时,元组中的值也会随之变化。目标可以是任何可迭代对象,要求是一次只能产出一项给接收端变量,或者用*捕获余下的项。可变序列: list、bytearray、array.array、collection.deque。:容器序列存放的是所包含对象的引用,对象可以是任何类型。元组存放记录,一项对应一个字段的数据,项的位置决定数据的意义。我们对元组的第二项不感兴趣,因此被赋值给_,_是一个虚拟变量。

kekkkke的博客 109

python的基础知识

python基础知识-持续学习中1.面向对象的概念,特性?与其他语言对比2.python的数据类型和数据结构3.装饰器4.python的内存管理机制5.生成器和迭代器6.常用函数7.GIL全局解释器锁 1.面向对象的概念,特性?与其他语言对比 python是面向对象编程,简称OOP,是一种程序设计思想 主要包括:类、继承、多态(子类方法覆盖父类方法)、实例、属性、方法 面向对象和面向过程语言的区别: 面向对象是把问题抽象成一个个对象,给这些对象绑上属性和方法,即以功能而非步骤划分问题。 优点:更易低耦合、

Lqmdexter的博客 517

Python 列表list与数组array的区别

1. 列表list与数组array的定义: 列表是由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间没有任何关系; Python中的列表(list)用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。 数组也就是一个同一类型的数据的有限集合。 2. 列表list与数组array的相同点: a. 都可以根据索引来取其中的元素;...

CoolGirl 4万+

轻松搞懂python列表list 和numpy.array数组的区别

文章目录1、列表2、数组(array)3、程序举例3.1 创建3.2 元素访问3.2.1一维数组、列表访问3.2.2 二维数组、列表访问3.3 浅拷贝与深拷贝 1、列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目...

caoyuan666的博客 1万+

python中list与array的区别

Python中list与array的区别 ​ list是Python中最基本的数据结构,list中的数据类不必相同的,即每个元素可以是不同的数据类型。list中存放的是数据的地址(指针)。如list1=[1,‘a’,3,8]需要4个指针和四个数据,增加内存和cpu的消耗。 ​ array则是由numpy封装,存放的元素都是相同的数据类型。 一、创建方法 1、创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可,使用len()可以得到其长度。如下所示: list1 = ['Google', 'R

qq_40447251的博客 1964

python学习笔记【2】——区分python中的列表(list),数组(array),元组(tuple),矩阵(matrix),张量(tensor,来自tensorflow)

最近学习python以及tensorflow,由于不是相关专业的,被各种类似概念搞得头大,有时候混淆在所难免。其实很多概念只是在不同的环境下用了不同的名称,其数学本质是相同的,通过一段时间的网上查询和学习,这里我就试图捋一捋这几个经常遇到的概念: 【1】列表——list(python概念) python中的列表通常通过a = [ ] 创建,list内的元素可以为数字,字符串等,元素类型可不同。...

u011204955的博客 6104

python 中 list、 matrix 和 array 的区别

list和np.matrix的区别: Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。使用Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组,那么为什么还需要使用Numpy呢?Numpy是专门针对数组的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。通常Numpy数组中的所有...

秋笙子的菜鸡历程 1145

地基Python中​列表(List)​ 和 ​数组(Array)​ 区别

Python 中,​列表(List)​ 和 ​数组(Array)​ 是两种不同的数据结构,主要区别简易介绍

qq_37679639的博客 1580
上一篇: swift的部分代码概述和学习
下一篇: Python中zip函数用法
zoushidexing
博客等级 码龄18年 70粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值