Python-6-列表基本操作

内容先知:

数据结构是通过某种方式组织在一起的数据元素集合,这些元素可以是数字或字符。Python有许多特殊的数据结构,常用的就是列表、元组和字典。其中,列表与元组属于序数(sequence)类型,他们是数个有序对象的组合;字典则属于映像(mapping)类型,是由一个对象集合来作为另一个对象集合的键值索引。

列表的基本操作

列表对象属于有序对象,是一群有序对象的集合,并且可以使用数字来做索引。列表对象还可以做新增、修改和删除的操作。

1·列表对象的特性

列表由一系列按特定顺序排列的元素组成。在Python中,用方括号 [ ]来表示列表,用逗号来分隔其中的元素。例如:

aa=["刘刘","力力","广广"]
print(aa)

运行结果:
在这里插入图片描述
从结果中看出,Python不仅输出列表的内容,还包括方括号。
列表的常见特性如下:

  1. 列表对象中的元素可以是不同的类型,例如:
aa=[12,"lliu",1.44]
  1. 列表对象中的元素可以是另一个列表,例如:
aa=[12,"liu",2.66,["lll",""fafae]]
  1. 访问列表中对象的方法也比较简单,列表中的序号是从0开始的,例如,访问下面列表中的第4个元素。
aa=[12,"liu",1.22,[99,"guang"]]
aa[3]

运行结果:
在这里插入图片描述

  1. 列表是可以嵌套的,如果要读取列表对象中嵌套的另一个列表,可以使用另一个中括号 [ ] 来做索引。例如:
aa=[12,"liu",1.22,[99,"guang"]]
aa[3][1]

运行结果:
在这里插入图片描述

in运算符用于判断一个元素是否存在于列表中,例如:
print(1 in [1,2,3])

在这里插入图片描述

2·列表的常见操作

列表创建完成后,还可以对其进行相关的操作。

2·1获取某个元素的返回值

使用列表对象的index(c)方法(c是元素的内容)来返回该元素的索引值。例如:

aa=[12,"liu",1.44,[9,"li"]]
print(aa.index("liu"))

运行结果:
在这里插入图片描述

2.2改变列表对象的元素值

列表中的元素值是可以改变的。例如,修改列表中的第二个元素:

aa=[12,"liu",1.44,[9,"li"]]
aa[1]="guang"
print(aa[1])

运行结果:
在这里插入图片描述

2·3 在列表中插入新的元素

例如在列表的第4个位置插入两个新元素:

aa=[12,"liu",1.44,[9,"li"]]
aa[3:]=["guang",123]            #表示从左侧第4个开始添加新的元素
print(aa)

运行结果:
在这里插入图片描述

2·4 删除列表中的元素

使用del语句可以删除列表对象中的元素。
例如:删除列表中的第三个元素:

aa=[12,"liu",1.66]
del aa[2]
print(aa)

运行结果:
在这里插入图片描述

如果想从列表删除最后一个元素,可以使用序号 -1 ,例如:

aa=[100,['A','B','C']]
del aa[-1]          #表示删除从右侧数第一个元素
print(aa)

运行结果:
在这里插入图片描述

如果想一次清楚所有的元素,可以使用del语句操作,命令如下:
del a[:]

3·列表的操作符+和*

列表的1常用操作符包括+和 * 。其中,列表对+和*的操作与字符串相似。
+号用于组合列表,*号用于重复列表

+号操作符经常用于字符串和列表元素的组合,例如:

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

运行结果:
在这里插入图片描述
·

aa=["苹果","梨子","桃子"]
aa="我最喜欢的水果是"+aa[1]
print(aa)

运行结果:
在这里插入图片描述
·
·
*号经常用于重复列表中的元素。例如,将列表中的元素重复4次:

aa=[100,200,300,400]*4
print(aa)

运行结果:
在这里插入图片描述
如何才能创建一个占有10个元素空间而又不包括任何内容的列表呢?
空列表可以简单地通过中括号( [ ] )来表示,如果想创建10个元素空间而又不包括内容的列表,可以使用 * 号来实现,如 []*10,这样就生成了一个包含10个空元素的列表。然而,有时候可能需要一个值来表示空值,表示没有放置任何元素,可以使用None。None是Python的内建值,例如:

aa=[None]*10
print(aa)

运行结果:
在这里插入图片描述

4·内置的函数和方法

列表对象有许多的内置函数和方法,下面学习这些函数和方法的使用技巧。

4·1 列表的函数

列表内置的函数包括 len(),max(),min(),list()。

(1)len()函数返回列表的长度。例如:

aa=[1,2,3,4,5,6,7,8]
prrint(len(aa))

运行结果:
在这里插入图片描述
(2)max()函数返回元素中最大值。例如,求取列表中的最大值。

aa=['a','b','c','d','e']
print(max(aa))

运行结果:
在这里插入图片描述
注意:列表中的元素必须保持一致才能使用max()函数,否则会出错,例如:

aa=[100,200,"liu"]
print(max(aa))  	#会报错

(3)min()函数返回最小值
·

4·2 列表的方法

在Python解释器内输入dir([]),就可以显示这些内置的列表方法:

print(dir([]))

在这里插入图片描述
(1)append(object)
append()方法在列表对象的结尾,加上新对象object。例如:

aa=[100,200,300,400]
aa.append(500)
print(aa)
aa.append([600,700])
print(aa)

运行结果:
在这里插入图片描述
(2)clear()
clear()函数用于清空列表,类似于del a[:]。

aa=[100,200,300,400,500]
aa.clear() 	#清空列表
print(aa)

运行结果:
在这里插入图片描述
(3)copy()
copy()函数用于复制列表。

aa=['苹果','香蕉','柚子',1.88,2.66,3.86]
bb=aa.copy()
print(bb)

运行结果:
在这里插入图片描述
(4)count(value)
count(value)方法针对列表对象中的相同元素value计算其数目。
例如:计算出列表值为166的元素个数:

aa=[100,133,166,188,166,266]
print(aa.count(166))

运行结果:
在这里插入图片描述

(5)extend(list)
extend(list)方法将参数list列表对象中的元素加到此列表中,成为此列表的新元素。例如:

aa=[100,200,300,400]
aa.extend([500,600,700,800])
print(aa)

运行结果:
在这里插入图片描述

(6)index(value)
index(value)方法将列表对象中元素值为value的索引值返回:

aa=[100,200,300,400,500,600,700,800]
print(aa.index(aa))

运行结果:
在这里插入图片描述
(7)inset(index,object)
insert(index,object)方法是将在列表中索引值为index的元素之前插入新的元素object:

aa=[100,200,300,400,500,600,700,800]
aa.insert(1,"新元素")
print(aa)

运行结果:
122131dw
(8)pop([index])
pop([index])方法将列表对象中索引值为index的元素删除。如果没有指定index的值,就将最后一个元素删除。
例如:删除第2个元素和删除最后一个元素:

aa=[100,200,300,[400,500,600]]
aa.pop(1)
print(aa)
aa.pop()
print(aa)

运行结果:
在这里插入图片描述
(9)remove(value)
remove(value)方法将列表对象中元素值为value的删除。
例如:删除值为300的元素:

aa=[100,200,300,400,500]
aa.remove(300)
print(aa)

运行结果:
在这里插入图片描述
(10)reverse()
reverse()方法将列表对象中的元素颠倒排列。

aa=[100,200,300,400]
aa.reverse()
print(aa)

运行结果:
在这里插入图片描述
(11)sort()
sort()方法将列表对象中的元素依照大小顺序排列

aa=[100,400,600,200,300]
aa.sort()
print(aa)

运行结果:
在这里插入图片描述

4.3 递推式构造列表

从Python2.0开始,可以使用递推式构造列表(list comprehension)的功能,所谓递推式构造列表,是使用列表内的元素创建新的列表。
递推式构造列表的语法如下所示:

[ expression for expresion1 in sequence1
  [for expression2 in sequence2]
  [...for expressionN in sequenceN]
  [if condition]]

sequenc 代表序数对象,如字符串、元组、列表等。在列表包容的结果中,新列表的元素数目是所有序数对象的元素数目相乘的结果。
下面的示例将字符串对象aa与对象laa做列表包容,创建一个新的列表对象。

aa='ab'
laa=[100,200,300,400]
bb=[(x,y) for x in aa for y in laa]
print(bb)

运行结果:
在这里插入图片描述
aa字符串对象有两个元素,laa列表对象有4个元素,列表包容产生的新列表有8个元素。
毕达哥斯拉三元数组是数形结合的一个典型的例子,毕达哥斯拉学派研究出了一个公式:若m是奇数,则m、(m^2-1)/2及(m ^2+1)/2便是三元数组,分别表示一个直角三角形的两条直角边和斜边。
下面的递推式构造列表创建了毕达哥斯拉三元组:

aa=[(x,y,z) for x in range (1,30) for y in range (x,30) for z in range (y,30) if x**2+y**2==z**2]
print(aa)

在这里插入图片描述

·
·
·
·
·
·文章摘选自《Python3.6 从入门到精通》,仅用于个人学习笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值