python3数据类型之列表

本文详细介绍了Python中列表的基本概念、创建方式、数据读取、增删改查操作及排序方法等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3中的数据类型可以以组来出现,组这种数据类型可以分为三类列表(list)、字典(dict)和元组(tuple)。

 

列表

列表是使用[]括起来的一个个数据,每个数据之间一逗号分隔。数据不分类型,数字、字母、字符串、甚至是列表、字典、元组都可以。任意的列表、字典、元组放在列表、字典、元组中叫做嵌套。如下:

#纯数字#
>>> [1,2,3,4,5,6,7,8,9,10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> type([1,2,3,4,5,6,7,8,9,10])
<class 'list'>


#纯字母,注意:字母、字符串(字母其实也属于字符串)需要加一对引号(单双三引号都可以)#
>>> ['A','B','C','D','E','F','G']
['A', 'B', 'C', 'D', 'E', 'F', 'G']

>>> type(['A','B','C','D','E','F','G'])
<class 'list'>


#数字、字符串、bool类型(True)任意组合#
>>> [1,'2','a','小明',True]
[1, '2', 'a', '小明', True]

>>> type([1,'2','a','小明',True])
<class 'list'>


#嵌套:数字、字符串、bool类型、列表、字典、元组任意组合#
>>> [[1,'2','w'],True,1,'2','a',(1,'2','a'),{'1':'6','2':'8','a':'b'}]
[[1, '2', 'w'], True, 1, '2', 'a', (1, '2', 'a'), {'1': '6', '2': '8', 'a': 'b'}]

>>> type([[1,'2','w'],True,1,'2','a',(1,'2','a'),{'1':'6','2':'8','a':'b'}])
<class 'list'>


#带()的为元组,带{}为字典,具体特性下面会说#

列表可以任意读增删改以及判定其中的任意内容,其中增删改之后只要再保存回对应的变量里,就会永久改变。读取的数据可以和其他数据任意组合并输出。

首先我们先看下读取,如下:

#读取:直接在列表的后方添加一个[]包含的数字序列,0表示列表从左往右数第一个,-1表示从右往左数第一个#
>>> ['A','B','C','D','E','F','G'][1]
'B'

#直接使用变量做读取#
>>> first=['A','B','C','D','E','F','G']
>>> print (first[1])
'B'

#读取内容与其他数据组合并输出#
>>> first=['A','B','C','D','E','F','G']
>>> print ('hello,'+first[1])
hello,B

如果想读取某个范围的列表可以通过使用[1:5]这种的方式来实现,[1:5]中:的左边代表起始位置,:右边代表终止位置,但是右边的数字要比你要读取的那个位置数大一,比如你要读取前六位,应该是[0:7]而非[0:6],这是python中的差一性。

如果将[1:5]中的1去掉,即[:5],这个代表从最开始读取,一直读取到第四位。如果将[5:10]中的10去掉,即[5:],这个代表从第五位截取,一直截取到最后一位。如果是[-3:]代表的就是从倒数第三位一直读取到最后。

#范围读取(1)#
>>> ['A','B','C','D','E','F','G'][0:4]
['A','B', 'C', 'D']

#范围读取(2)#
>>> ['A','B','C','D','E','F','G'][:4]
['A','B', 'C', 'D']

#范围读取(3):从第二位到第十位,每隔一位截取一次#
>>> ['A','B','C','D','E','F','G','H','I','J','K'][1:11:2]
['B', 'D', 'F', 'H', 'J']

也可以判断某个数据是否在列表中(使用in)或者是否不在列表中(not in)或者列表一共有几位(len):

#是否在列表中#
>>> 'A' in ['A','B','C','D','E','F','G','H','I','J','K']
True

>>> '1' in ['A','B','C','D','E','F','G','H','I','J','K']
False


#是否不在列表中#
>>> 'A' not in ['A','B','C','D','E','F','G','H','I','J','K']
False

>>> '1' not in ['A','B','C','D','E','F','G','H','I','J','K']
True


#总共有几位#
>>> len(['A','B','C','D','E','F','G','H','I','J','K'])
11

 还可以判定列表中最大值和最小值是多少,数字的话按0最小来拍,字符则是按字母排序来排,有空格则是空格最小。

>>> min(['小王','小李','小安','小张','小赵','小沈'])
'小安'

>>> max(['小王','小李','小安','小张','小赵','小沈'])
'小赵'

>>> min(['A','B','C','D','E','F','G','H','I','J','K'])
'A'

>>> max(['A','B','C','D','E','F','G','H','I','J','K'])
'K'

>>> min([1,2,3,4,5,6,7,8,9,10,11])
1
>>> max([1,2,3,4,5,6,7,8,9,10,11])
11

#但如果是字符串格式的数字,则是9最大,因为这时候所有数据都是字符串#
>>> min(['1','2','3','4','5','6','7','8','9','10','11'])
'1'
>>> max(['1','2','3','4','5','6','7','8','9','10','11'])
'9'

列表数据的修改:

#修改列表数据#
>>> first=['A','B','C','D','E','F','G']
>>> first[0]='AAA'
>>> print (first)
['AAA', 'B', 'C', 'D', 'E', 'F', 'G']

我们可以使用sort()或者sort()依据序列(即0、1、2)来对列表进行永久性排序。

#sort()永久性排序:正序#
>>> test=[1,3,5,7,9,11,2,4,6,8,10]
>>> test.sort()
>>> print(test)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

#sort()永久性排序:倒序#
>>> test=[1,3,5,7,9,11,2,4,6,8,10]
>>> test.sort(reverse=True)
>>> print(test)
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

#sorted()临时排序#
>>> sorted([1,3,5,7,9,11,2,4,6,8,10])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

#验证sorted()临时排序#
>>> test = [1,3,5,7,9,11,2,4,6,8,10]
>>> test1 = sorted([1,3,5,7,9,11,2,4,6,8,10])
>>> print(test1)
>>> print(test)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 3, 5, 7, 9, 11, 2, 4, 6, 8, 10]

也可以用reverse()(和上面sort用法里面的反序是一样的)将列表现有序列相反排列: 

>>>test = [1,3,5,7,9,11,2,4,6,8,10]
>>>test.reverse()
>>>print (test)
[10, 8, 6, 4, 2, 11, 9, 7, 5, 3, 1]

列表数据的增加:

#添加列表数据1:直接插入(insert()函数) 注:下文中insert(0,'efg')中的0代表序列数,在第几位插入就填几#
first=['A','B','C','D','E','F','G']
first.insert(0,'efg')
print (first)
['efg', 'A', 'B', 'C', 'D', 'E', 'F', 'G']

#添加列表数据2:在末尾插入(append()函数)#
>>> first=['A','B','C','D','E','F','G']
>>> first.append('aaa')
>>> print (first)
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'aaa']

#添加列表数据3:列表相加#
>>> ['A','B','C','D','E','F','G']+['A', 'B', 'C', 'D', 'E', 'F', 'G', 'aaa']
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'aaa']

#重复列表数据#
>>> ['1','2','3']*3
['1', '2', '3', '1', '2', '3', '1', '2', '3']

列表数据的删除:

#删除列表数据1:根据位置删除(del),del first[0]中的0填删除数据的序列位即可#
>>> first=['A','B','C','D','E','F','G']
>>> del first[0]
>>> print (first)
['B', 'C', 'D', 'E', 'F', 'G']


#删除列表数据2:pop()(将删除的数据值存储到其他地方,以便以后可以调用)#
#在pop()的()中添加相应位数即可删除相应数值,如不添加数字则默认删除最后一位#
>>> first = ['A','B','C','D','E','F','G']
>>> first_pop = first.pop()
>>> print (first)
>>> print (first_pop)
['A','B','C','D','E','F']
G

>>> first = ['A','B','C','D','E','F','G']
>>> first_pop = first.pop(0)
>>> print (first)
>>> print (first_pop)
 ['B','C','D','E','F','G']
A


#根据数据内容删除#
>>> first = ['A','B','C','D','E','F','G']
>>> first.remove('C')
>>> print (first)
['A','B','D','E','F','G']

当然,并非是很多数据才能组成一个列表,只有一个数据也可以组成一个列表。即使没有数据,只要有[]就是列表。

>>> type([1])
<class 'list'>

>>> type([])
<class 'list'>

最后,还有一个用法len()这个不止在列表,在很多地方(比如字符串)都可以使用,作用是查看数据长度。

>>> len([10, 8, 6, 4, 2, 11, 9, 7, 5, 3, 1])
11

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值