python数据结构中的列表

一、列表

在介绍列表之前,我们先了解一下Python中“序列”的概念。在Python中,序列是最基本的数据结构。序列中的每个元素都被分配一个数字,以表明它的位置,并称之为索引。其中,第一个索引值为0,第二个索引值为1,依此类推。

Python中的序列都可以进行索引、切片、加、乘、检查成员等操作。为了使用方便,Python还内建了确定序列长度以及确定最大和最小元素的方法。

Python中最常用的序列是列表和元组,本节介绍列表,元组放在下一节介绍。

1.列表的概念

列表(list)是Python中使用最频繁的数据类型,它是放在方括号([])内、用逗号分隔的一系列元素。

列表中元素的类型可以不同,它支持数字、字符串甚至可以包含列表。换言之,列表允许嵌套。

2.列表的创建

创建一个列表,只要把逗号分隔的不同的数据项用方括号括起来即可。例如:

list1 = ['Google', 'Runoob', 1997, 2017]

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

list3 = ["a", "b", "c", "d"]

与字符串一样,列表同样可以被索引、截取和组合。列表被截取后返回一个包含所需元素的新列表。与字符串的索引一样,列表索引也是从0开始的。

3.列表的访问与截取

可以使用下标索引来访问列表中的元素,同样,也可以使用类似于字符串切片运算的形式截取列表中的元素

str="0123456789"
print ("str[0:3]:",str[0:3]) #截取第一位到第三位的字符
print ("str[:]:",str[:]) #截取字符串的全部字符
print ("str[6:]:",str[6:]) #截取第七个字符到结尾
print ("str[:-3]:",str[:-3]) #截取从头开始到倒数第三个字符之前
print ("str[2]:",str[2]) #截取第三个字符
print ("str[-1]:",str[-1]) #截取倒数第一个字符
print ("str[::-1]:",str[::-1]) #创建一个与原字符串顺序相反的字符串
print ("str[-3:-1]:",str[-3:-1]) #截取倒数第三位与倒数第一位之前的字符
print ("str[-3:]:",str[-3:]) #截取倒数第三位到结尾
print ("str[:-5:-3]:",str[:-5:-3]) #逆序截取

令L=['Google', 'Runoob', 'Taobao']

则截取操作如表3-1所示。

表3-1 Python列表的截取操作

Python 表达式

结果

描述

L[2]

'Taobao'

读取第三个元素。

L[-2]

'Runoob'

从右侧开始读取倒数第二个元素。

L[1:]

['Runoob', 'Taobao']

输出从第二个元素开始的所有元素。

下面将上述的列表截取操作放入一个程序中。

注意:字符串、列表和元组三者都是序列,都支持切片运算,操作方法也极为相似,只是操作结果的类型有所不同。此外,不能通过切片运算对字符串和元组进行更新,列表则可以。

4.列表的更新

可以对列表的数据项进行修改或更新,也可以使用append()方法(稍后介绍)添加一些列表项,例如:

L=['Google', 'Runoob', 'Taobao']
L.append('JingDong')
print(L)    #['Google', 'Runoob', 'Taobao', 'JingDong']

5.列表元素的删除

可以使用 del 语句来删除列表中的元素,例如:

L=['Google', 'Runoob', 'Taobao']
del L[2]
print('删除后,剩余的元素',L)  #运行结果:删除后,剩余的元素 ['Google', 'Runoob']

使用remove()方法也可以删除列表的元素。

6.列表操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。+ 和 * 的用法如表3-2所示。

表3-2列表中+和*的用法

Python 表达式

结果

描述

len([1, 2, 3])

3

长度(列表中元素的个数)

[1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

组合(即拼接)。

['Hi!'] * 4

['Hi!', 'Hi!', 'Hi!', 'Hi!']

重复。

3 in [1, 2, 3]

True

元素是否存在于列表中。

for x in [1, 2, 3]: print (x,end=' ')

1 2 3

遍历并输出列表的各个元素。

注意:为了让列表的各个元素打印在一行上,而且相邻两个元素之间隔一个空格,表3-2的最后一行使用了“print (x,end=' ')”这种打印格式,后面遍历元组和集合时采用了同样的方法。

7.列表嵌套

列表嵌套指的是在列表里创建其它列表,例如:

a = [1,2,3,4]
b = [5,6,7,8,9]
c =[a,b]
print('a列表:',a)         #a列表: [1, 2, 3, 4]
print('b列表:',b)         #b列表: [5, 6, 7, 8, 9]
print('嵌套后的列表:',c)   #嵌套后的列表: [[1, 2, 3, 4], [5, 6, 7, 8, 9]]

8.Python列表中的内建函数与方法

Python列表中的内建函数如表3-3所示。

表3-3 Python列表中的内建函数

序号

函数

len(list)

返回列表元素的个数。

max(list) 

返回列表元素的最大值。

min(list) 

返回列表元素的最小值。

list(seq)

将元组转换为列表。

  Python列表中的方法如表3-4所示。

  表3-4 Python列表中的方法

方法

作用

list.append(obj)

  在列表末尾添加新的对象。

list.count(obj) 

统计某个元素在列表中出现的次数。

list.extend(seq) 

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

list.index(obj) 

从列表中找出某个值第一个匹配项的索引位置。

list.insert(index, obj)

  将对象插入列表。

list.pop(obj=list[-1])

  移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

list.remove(obj) 

移除列表中某个值的第一个匹配项。

list.reverse() 

将列表中的元素反向。

list.sort([func]) 

对原列表进行排序。

list.clear()

  清空列表。

list.copy()

  复制列表。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值