列表是python中的基础数据类型之一,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型。

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

list是可以嵌套的。


Python列表脚本操作符

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

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

迭代


Python列表截取与拼接

类似于字符串切片等操作

Python列表常用方法

insert

li = [1,'a','b',2,3,'a']
li.insert(0,55)     #按照索引去增加,函数用于将指定对象插入列表的指定位置。把输入参量当成元素
print(li)           #返回[55, 1, 'a', 'b', 2, 3, 'a']
li.insert(1,[1,2])
print(li)           #返回[55, [1, 2], 1, 'a', 'b', 2, 3, 'a']

append

li = [1,'a','b',2,3,'a']
li.append('aaa')    #增加到最后
print(li)           #返回[1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]
li.append([1,2,3])  #增加到最后
print(li)           #返回[1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]

extend

li = [1,'a','b',2,3,'a']    #末尾一次性追加另一个序列中的多个值,接受的参数是个list
li.extend(['q,a,w'])
li.extend(['q,a,w','aaa'])
li.extend('abc')
print(li)       #[1, 'a', 'b', 2, 3, 'a', 'q,a,w', 'q,a,w', 'aaa', 'a', 'b', 'c']

加号

li = [1,'a','b',2,3,'a']+['aqer','2']
print(li)
#li = [1,'a','b',2,3,'a']+'aqer'        #该句会报错,因为加号两侧只能是同类型

extend与加号的区别:

+运算是对于两个类型相同的变量之间的运算,不改变原有的变量,并返回一个新的值,是内容之间的拼接。
extend 也是在原有List上进行修改,没有返回值,可以扩展不同类型的变量,并将其内容以List变量的形式加入到原List中。 

pop

li=[0,1,2,3,4,5,'a','b','c','a']    
l1 = li.pop(1) #按照位置去删除,有返回值,只能按照位置,删除单个,不能切片删除
print(l1)       #返回1
li.pop()       #可以直接用,参数留空表示删除最后一个
print(li)       #返回[0, 2, 'a', 3, 4, 'a', 5, 6, 'b', 7, 8]

del

li=[0,1,2,3,4,5,'a','b','c','a']
del li[1:3] #按照位置去删除,也可切片删除没有返回值。
print(li)
del li[-1]
print(li)

remove

li=[0,1,2,3,4,5,'a','b','c','a']
li.remove('a') #按照元素去删除,删除第一个相同的元素,没有返回值
print(li)       #[0, 1, 2, 3, 4, 5, 'b', 'c', 'a']
#li.remove('asdf')      #删除没有的元素会报错

clear

li.clear() #清空列表


改的程序思路是,先删除索引位置的元素,再把要添加的元素添加进来,所以数量不匹配也是可以的

只有一个索引的时候,会把右侧的赋值当成元素来看

当索引是个切片的时候,会把右侧的赋值当成list来看,如果是字符串,则把字符串拆成一个列表(字符串的每个字符都是一个元素)

li = [1,'a','b',2,3,'a']
li[1] = 'dfasdfas'
print(li)   #[1, 'dfasdfas', 'b', 2, 3, 'a']

li = [1,'a','b',2,3,'a']
li[1] = ['dfasdfas']
print(li)   #[1, ['dfasdfas'], 'b', 2, 3, 'a']

li = [1,'a','b',2,3,'a']
li[1] = ['df','gt']
print(li)   #[1, ['df', 'gt'], 'b', 2, 3, 'a']

li = [1,'a','b',2,3,'a']
li[1:3] = ['a','b']
print(li)   #[1, 'a', 'b', 2, 3, 'a']


li = [1,'a','b',2,3,'a']
li[1:2]='iop'
print(li)   #[1, 'i', 'o', 'p', 'b', 2, 3, 'a']

li = [1,'a','b',2,3,'a']
li[1:3]=['af','gr','gh','23']
print(li)   #[1, 'af', 'gr', 'gh', '23', 2, 3, 'a']


切片去查,或者循环去查。

其他操作

count(数)(方法统计某个元素在列表中出现的次数)。

a = ["q","w","q","r","t","y"]
print(a.count("q"))

index(方法用于从列表中找出某个值第一个匹配项的索引位置)

a = ["q","w","r","t","y"]
print(a.index("r"))

sort (方法用于在原位置对列表进行排序)。

a = [2,1,3,4,5]
a.sort()#顺序输出   他没有返回值,所以只能打印a
print(a)#[1, 2, 3, 4, 5]
a.sort(reverse=True)#逆序输出
print(a)#[5, 4, 3, 2, 1]

reverse (方法将列表中的元素反向存放)。

a = [2,1,3,4,5]
a.reverse()#把列表倒过来
print(a)#[5, 4, 3, 1, 2]

len(list) 方法返回列表元素个数。


max(list) 方法返回列表元素中的最大值。


min(list) 方法返回列表元素中的最小值。


list(seq) 将元组转换为列表


list.copy() 用于复制列表,类似于 a[:]。

枚举

enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

li = ['alex','银角','女神','egon','太白']
for i in enumerate(li):
    print(i)
for index,name in enumerate(li,1):
    print(index,name)
for index, name in enumerate(li, 100):  # 起始位置默认是0,可更改
    print(index, name)

输出

(0, 'alex')
(1, '银角')
(2, '女神')
(3, 'egon')
(4, '太白')
1 alex
2 银角
3 女神
4 egon
5 太白
100 alex
101 银角
102 女神
103 egon
104 太白