Python 中列表和元组两种序列结构介绍及相关操作

Python里除字符串外 还有另外两种序列 即列表和元组 它们都能包含零个或多个元素 且不要求所含元素类型相同 每个元素都可是任何Python类型对象

Python 中列表和元组两种序列结构介绍及相关操作

为何Python要设计列表与元组这两种序列结构呢?原因在于元组类似字符串是不可变的。当给元组赋值时,这些值会固定在元组中无法修改。列表则灵活可变,能随意插入或删除元素,结构更灵活,用处更强大。

一:列表创建

使用[ ]或者list[ ]创建列表

number=[1,2,3]
s 等于列表 ['lily', 'jude']
这是一个混合列表
还可以创建一个空的列表
使用list函数创建 列出“jude”

二:列表操作

2.1,通过索引获取元素,索引值从0开始

name=['lucy','lily',['china','usa'],'007','anna','mei']可改写为:name 包含 'lucy',包含 'lily',包含 ['china', 'usa'],包含 '007',包含 'anna',包含'mei'
name[0] >>> 'lucy'
name[1] >>> 'lily'
获取最后一个元素,依次类推,name[-1]的值为'mei'
name[2][1]的值为'usa'  #针对嵌套的列表结构 可多次通过索引获取

2.2,列表分片获取

要通过列表分片的方式来实现

其基本形式为:列表名[左索引值:右索引值]。左右索引值均可省略。

左索引值省略时表明。列表元素从0开始。右索引值省略表示。包含左索引值右边的所有元素。

注意:分片其实是创建原列表的一个拷贝

成员 = ['php', 'python', 'java','sql']
member从索引1到索引3(不包括索引3)的切片结果是['python', 'java'],member本身的元素并未改变,这相当于生成了一个新列表,该新列表包含原列表中索引为1和2的元素
member[:3]得到['php', 'python', 'java'],这表示从第0个索引值开始
成员从索引值1开始 >>> ['python', 'java','sql']  # 意思是获取从左索引值1起至列表右边的所有元素
成员列表:>>>['php', 'python', 'java','sql']  #这等同于复制了一份原来的列表

分片操作能够接收第三个参数。此参数即步长。其格式如下:[start:end:step]

step在不指定时默认为1

numb=[1,2,3,4,5,6]
numb[0:6:2] >>>[1,3,5]
numb[::2] >>>[1,3,5]
numb[::-1] 会生成 [6,5,4,3,2,1]  这相当于复制一个反转的列表

2.3,列表复制

三种方法都可以将一个列表的值复制到一个新的列表

list1 = [123,456]
list2 = list1.copy()  
则list2的值变为[123,456]。它的功能与列表分片功能相同。list2 = list1[:]起到的作用是一样的。
他们两个和赋值运算符=不一样 前者会在内存里重新申请一块空间 用来存放列表的值
=则是将列表的地址直接赋值给了另一个列表,
举例说明两者带来的区别:
list1 = [1,3,5]
list2 =list1
list3 = list1.copy()
list1添加'python'
列表 list2 包含元素 'python'
list3 >> [1,3,5]

2.4,列表排序

经常需要将列表按元素值进行排序,python提供了两个函数

若列表里的元素全是数字,会默认按从小到大的升序进行安装。若元素全是字符串,会依照字母表顺序排列。

进阶用法:

sort(func,key,reverse)中,func用于设置排序算法,key用于设置关键字。

reverse=False时代表正序排列。为True的话则颠倒顺序。默认状态是正序排列

a=[1,5,3,99,6]
a.sort()  
a >> [1,3,5,6,99]
原列表保持不变
>> [1,3,5,6,99]

2.5,添加元素

列表中的元素还有lily
#append函数将元素添加到列表末尾
number.append('007') 无法改写,因为禁止穿插英文单词,且这句话本身除了英文单词外没有其他可改写的内容。
包含“lucy”“lily”“007”
#extend函数将列表添加到列表的末尾
将 ['anna', 'mei'] 添加到 number 中 # 这等价于 number += ['anna','mei']
包含lucy、lily、007、anna、mei
#insert()方法
将 'ken' 插入到 number 的开头位置
包含“肯”“露西”“莉莉”“007”“安娜”“梅”
**连接操作符,两个列表直接相加可以得到合并之后的新列表
a,b=[1,2],[3,4]
>>> a+b
    [1,2,3,4]
>>> a*2 
    [1,2,1,2]

2.6 删除列表元素

还有梅
name移除'lucy'
包含“mei”
>>> del name[1]
包含“lily”“anna”“mei”
>>> name.pop() 
'mei'
>>> name
莉莉,安娜
>>> name.pop(1)
    'anna'
>>> name
['lily']
list1 = [1,1,2,3,4]
>>> list1.clear() 
>>> list1
    []

2.7,使用in判断值是否存在

判断列表中是否存在该元素,存在返回True

name=['lucy','lily','007','anna','mei']
>>> '007' in name
True

2.8,使用join()转换为字符串

注意:join()实际上是字符串的方法并非列表的方法,不能借助suit.join()来调用。

join() 是字符串分割split()的逆过程

suit包含三个元素,分别是apply,orange,peer
>>> '# '.join(suit)
'apply# orange# peer'

2.9,元素计数

使用count()可以计算某一个特定元素在列表中出现的次数

#count计算参数在列表中出现的次数
list1.count(1) >>> 2 

2.10,获取列表长度及列表反转

list1=[1,2,3,1,4]
#计算元素个数
>>> len(list1) 
5 
#列表反转
>>> list1.reverse() 
>>> list1
[4, 1, 3, 2, 1]

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

26阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读