[Python]学习基础篇:列表(List)的浅解

简介:

列表

首先先说明中python中数组下标的使用,在java,c或者c++中,每个数组的下标必须是正数,不能出现负数,如在java,c或者c++中使用a[-1],编辑器会报错,而在python中数组的访问时可以出现负数下标,表示倒数第几个元素。

  • list列表的定义 
    Python中列表的定义比较简单,不需要想java中需要用List类创建的一个对象。在java中不同类型的对象是不能存放在同一个列表中,而Python中同一个list可以存放不同类型的数据,同时也可以存放一个obj。 
    格式:list=[……..]

>>>list=['defrew','234','234','dew','2342',238492,'f'] >>>list['defrew', '234', '234', 'dew', '2342', 238492, 'f']123

列表的重复定义: 
list=list * count

>>>list=['haha'] >>>list * 4['haha', 'haha', 'haha', 'haha']123

list=[1,3,44’234’]

  • 列表中元素的增加

函数/表达式 说明 举例
+ 向列表的末尾条件一个新的列表 >>>list=list+['a'] >>>list [1,3,44,'234','a']
addpend( x ) 向列表的末尾添加一个元素 >>>list.append(10) >>>list [1,3,44,'234','a',10]
extend( list ) 向列表的末尾添加一个list >>>list.extend([5,6]) >>>list [1,3, 44,'234','a',10,5,6]
insert( i , x ) 在i的位置添加元素x >>>list.insert(0,'x') >>>list ['x',1,3,44,'234','a',10,5,6]

list=[1,2,3,4,5,6] 
列表的删除

函数 说明 举例
del 删除特定位置的元素 >>>del list[3] >>>list [1,2,3,5,6]
remove(x) 删除特定值得元素 >>>list.remove(3) >>>list [1,2,5,6]
pop([]) 弹出指定位置的元素,若参数i不存在时,弹出最后一个元素 >>>list.pop() 6 >>>list [1, 2, 5]

  • 列表的更新 
    对于列表的更新,只需要将特定未知的元素进行从新复制,这样就可以实现更新

>>>list[i]=x1

list=[1,2,3,4,5,6] 
检查列表中元素是否存在

函数 说明 举例
count(str) 判断str元素出现的次数 >>>list.count(1) 1
value in list 使用in表达式检测元素是否存在,若存在返回True >>>4 in list True >>>7 in list False
index(str) 返回某个元素的准确位置,若元素不在列表中则出错 >>>list.index(3) 2 list.index(7) 7 is not in list

list=[1,2,3,4,5,6] 
列表的迭代

>>> for key in d:     print(key)12

如何将列表的索引和值都打印出来呢?使用Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

>>>for key in enumerate(list)         print key     0  1     1  2     ....

list=[1,2,3,4,5,6] 
列表的常用函数

函数 说明 举例
cmp(list1,list2) 比较两个列表的元素,先比较第一个元素,若第一个元素相同,则开始对比第二个元素,若不同不在比较。若两个列表相同,则返回0,若list1>list2,返回1,若list1
len(list) 返回列表的长度或者元素个数 >>>len(list) 6
max(list)/min(list) 返回列表中的最大值和最小值
sorted(list[,reverse=True]) 默认为升序排序,若第二个参数存在且值为True,则为降序排序
reversed(list) 逆序排序

  • 列表的切片 
    对于列表而言找打某一个元素比较简单,使用list[i]就可以找到这个元素了,那对于找到某一范围内的元素,python的列表提供了切片的方法,可以找到某一个范围内的元素。 
    格式:list[start: end] 
    list=[1,2,3,4,5,6]

(1).取前3个元素,若从0开始取,则第一个参数可以省略 >>>list[0:3] [1, 2, 3] >>>list[:3] [1, 2, 3] (2).取1到4个元素 >>>list[1:4] [2, 3, 4] (3).取倒数第一个到倒数第三个 >>>list[-3:-1] [4, 5] (4).取最后两个 >>>list[-2:] [5, 6] (5).若想在列表中取前4个,每两个中去一个 >>>list[:4:2] [1, 3] (6).复制一个列表 >>>list1=list[:] >>>list1 [1, 2, 3, 4, 5, 6]

元组

元组由简单的对象组构成,元组与列表相似,但是元组不能在原处修改。元组位置有序的对象集合,元组通过偏移来访问。

为什么有了列表还要元组?元组的不变性提供了某种完整性,可以确保元组在程序中不被另一个引用修改,元组类似于其他语言中的常数。

  • 元组的定义 
    对于tuple的定义和list定义是一样的,不过tuple定义之后就不能修改值了。

>>>a=(1,2,3,4,5)

对于定义tuple只有一个元素的元组,对于以下定义会产生歧义

>>>a=(1) 1

以上定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。 
那么对于只有有个元素的元组的定义时必须加上逗号,例如:

>>>a=(1,) (1,)

元祖的定义之后它的值就不会改变,但是对于元组中元素是没有限制的,元素可以是tuple,list,dict等,那么定义一个可变的元组,那么元组中的元素中有一个可变的列表,例如:

>>>a=(1,2,[2,3,4,5]) >>>a(1, 2, [2, 3, 4, 5])

  • 元组的检索 
    对于元组的检索使用和list检索相同的方法就行

  • 元组和list的差别

**相同点**(1).使用同样的方式遍历 (2).以同样的方法进行切片和检索**不同点**(1).元组中的元素一旦定义就无法改变,所以就无法使用append()和extend()方法来增加元素。 (2).元组中的元素是无法修改的,所以也是不发使用remove()和pop()方法。**tuple相对于list的优点**(1).元组的速度比列表快 (2).元组对于不需要改变的数据进行‘写保护’,安全 (3).有时一些元组可以做字典键
Insane_linux
相关文章
|
5月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
352 1
|
5月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
494 1
|
5月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
753 1
|
5月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
496 116
|
5月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
438 109
|
5月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
508 119
|
5月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
|
5月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
241 1
|
5月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
249 4

推荐镜像

更多