创立列表

列表是 Python 中用于存储一系列元素的数据结构,列表中的元素能够是字符串、数字、布尔值、其他列表、字典等。在 Python 中,有三种办法能够创立列表:运用方括号、list() 函数和 split() 函数切分字符串。

方括号

将元素放在方括号内,用逗号分隔,即可创立一个列表。通常咱们会将列表赋值给一个变量。例如,a 是一个字符串列表,b 是一个数字列表,c 是一个包括字符串、数字和列表的列表。

a=['apple','banana','orange']
b=[1,2,3,4,5]
c=['apple',1,2,3,['dog','cat']]
print(type(a))#<class'list'>
print(type(b))#<class'list'>
print(type(c))#<class'list'>

list() 函数

list()函数能够创立一个空列表,或许将可迭代的数据(如元组、字符串、集合或字典)转换成列表。,下方的比如 b 会将元组成列表,c 是空的列表,d 则是将 apple 字符串转成成五个字符串的列表。

a=('apple','banana','orange')
b=list(a)#元组转换成列表
c=list()#创立一个空列表
d=list('apple')#字符串转换成列表
print(b)#['apple','banana','orange']
print(c)#[]
print(d)#['a','p','p','l','e']

split() 函数

split() 函数能够依据指定的分隔符将字符串分割成列表。下图的比如,会依据 . 符号,将字符串切分红列表,由于有多个 . 在一起,拆分时会出现空的字符串元素。

a='apple...banana...orange'
b=a.split('.')#依据'.'分隔符分割字符串
print(b)#['apple','','','banana','','','orange']

兼并列表

兼并列表有两种办法:运用 + 运算符和 extend() 办法。

运用 + 号

运用 + 运算符能够将两个列表兼并,类似于字符串的拼接。在 + 号右方的列表中的元素会追加在左方列表的后边。

a=['a1','a2','a3']
b=['b1','b2','b3']
c=a+b
print(c)#['a1','a2','a3','b1','b2','b3']

extend() 函数

extend()函数能够将一个列表的内容增加到另一个列表的结尾。

a=['a1','a2','a3']
b=['b1','b2','b3']
a.extend(b)
print(a)#['a1','a2','a3','b1','b2','b3']

留意: extend()办法会改动原列表,但不返回新列表 ,所以假如写成 c = a.extend(b)c 将会是 None

a=['a1','a2','a3']
b=['b1','b2','b3']
c=a.extend(b)
print(c)#none

获取列表元素

要运用列表,咱们需求读取列表中的内容,Python 供给了两种办法来读取列表元素:经过索引和切片。

运用索引获取元素

列表中的每个元素都有一个索引号,经过索引能够直接访问元素。列表中第一个元素的索引为0,第二个 offset 为 1,依此类推,下面的比如,会依序读取并印出列表中的元素。

a=['apple','banana','orange']
print(a[0])#apple
print(a[1])#banana
print(a[2])#orange

索引也能够从右侧开端计数,第一个元素的索引为 -1,第二个元素为 -2,依此类推。

a=['apple','banana','orange']
print(a[-1])#orange
print(a[-2])#banana
print(a[-3])#apple

假如列表中有列表,就构成了「多维列表」,读取元素时假如有第二层,就多一个中括号加上索引值,就能读取第二层的元素。

a=['apple','banana','orange',['dog','cat']]
print(a[3][0])#dog
print(a[3][1])#cat

运用切片获取元素

切片能够用来获取列表中的一部分元素。切片的语法是在中括号内运用冒号:,在冒号的前后放入指定的索引,就能取出指定规模的数据 ( 第一个 offset : 第二个 offset – 1 ),假如不指定数值,冒号前方默认为 0,冒号后方默认为 -1。

规模也能够运用「负数」,表明从右侧开端,但要留意第一个值的次序 (不论正负) 都必须要在第二个值的前面,不然就读取不到数据 ( 会返回空的成果 )。

a=[0,1,2,3,4,5,6,7,8,9]
b=a[:3]
c=a[3:]
d=a[1:3]
e=a[-5:-2]
print(b)#[0,1,2]获得0~(3-1)项
print(c)#[3,4,5,6,7,8,9]获得3~最后一项
print(d)#[1,2]获得1~(3-1)项
print(e)#[5,6,7]获得倒数第5项~(倒数第二项-1)

假如运用两个冒号 :: ,表明要间隔几个元素取值,例如 ::2 便是间隔两个元素,::3 便是间隔三个元素,假如是负数,便是从右侧取值,因而 ::-1 就能够让回转整个列表

a=[0,1,2,3,4,5,6,7,8,9]
b=a[::3]#每隔三个元素取一个
c=a[3::2]#从第三个元素开端,每隔两个元素取一个
d=a[::-1]#回转列表
e=a[::-2]#回转列表,每隔两个元素取一个
print(b)#[0,3,6,9]
print(c)#[3,5,7,9]
print(d)#[9,8,7,6,5,4,3,2,1,0]
print(e)#[9,7,5,3,1]

仿制列表

能够运用列表的切片[:]来仿制整个列表,或许经过赋值来仿制列表。下方的程序码展示两种仿制列表的办法,假如运用 b=a 的做法,虽然看起来像是仿制了,但实际上 a 和 b 指向了同一个列表,所以当 a 删去了一个元素时,b 也会跟着改动,然而假如运用 d=c[:] 的办法,会创立一个 全新 的列表,当 c 发生改动时,不会影响 d。

a=[1,2,3]
b=a
del(a[1])#删去a的第二个元素
print(a)#[1,3]
print(b)#[1,3]
c=[1,2,3]
d=c[:]#仿制c的一切元素变成一个新列表
del(c[1])#删去c的第二个元素
print(c)#[1,3]
print(d)#[1,2,3]

修正列表元素

列表的内容是能够修正的。能够经过索引或切片来修正元素。

运用索引修正元素

经过索引能够直接修正元素。

a=['apple','banana','orange']
a[0]='grap'#修正第一个元素

运用切片修正元素

切片能够用来快速替换列表中的一段元素。下方的程序会将第 b、c、d 这三个元素替换为 100、200、300。

a=['a','b','c','d','e']
a[1:4]=[100,200,300]
print(a)#['a',100,200,300,'e']

指定替换的元素的数量,不一定要和本来的数量相同多 (能够比较少,也能够比较多),替换后会将规模的内容,彻底替换成新的内容。

a=['a','b','c','d','e']
a[1:4]=[1,2,3,4,5,6,7,8,9]
print(a)#['a',1,2,3,4,5,6,7,8,9,'e']

**替换的内容不一定要是列表,只要是能够「迭代」的内容,**例如字符串、元组,都能够将其替换进入列表中,下方的程序将 1~4 的方位换成 hello 字符串,替换后 hello 字符串会被拆分红一个个的字母。

a=['a','b','c','d','e']
a[1:4]='hello'
print(a)#['a','h','e','l','l','o','e']

增加列表元素

Python 供给两种列表增加元素的办法:append() 和 insert()

append()

append() 函数能够将元素增加在一个列表的结尾,假如增加的是一个列表,会原封不动的变成一个新元素 。

a=['a','b','c','d','e']
a.append(100)
b=['a','b','c','d','e']
b.append([100,200,300])
print(a)#['a','b','c','d','e',100]
print(b)#['a','b','c','d','e',[100,200,300]]

insert()

假如现已知道要增加的方位,运用 insert() 函数,就能够将指定的内容,从指定的方位刺进,假如刺进的方位设置为 0,会将内容刺进在列表的开头,假如设定的方位大于列表长度,就会刺进在尾端 (假如设定 -1,会刺进在倒数第二个)。

a=['a','b','c','d','e']
a.insert(3,100)
b=['a','b','c','d','e']
b.insert(0,100)
c=['a','b','c','d','e']
c.insert(100,100)
d=['a','b','c','d','e']
d.insert(-1,100)
print(a)#['a','b','c',100,'d','e']
print(b)#[100,'a','b','c','d','e']
print(c)#['a','b','c','d','e',100]
print(d)#['a','b','c','d',100,'e']

删去列表元素

Python 供给了四种办法,来删去列表的数据:del、remove()、pop() 和 clear()

del

假如现已知道删去元素的方位,就能够「运用 del list(索引值)」 来删去指定的元素,同样支持中括号切片的语法 ,能够删去某个规模的元素,当元素被删去时,后边的元素会往前平移,替代本来的方位。

a=[0,1,2,3,4,5,6,7,8,9]
dela[2]
b=[0,1,2,3,4,5,6,7,8,9]
delb[2:6]
print(a)#[0,1,3,4,5,6,7,8,9]
print(b)#[0,1,6,7,8,9]

remove()

假如不知道删去元素的方位,能够运用「remove(元素内容)」删去该元素,假如有多个同样内容的元素,remove() 只会删去第一个找到的元素

a=['apple','apple','banana','orange']
a.remove('apple')
print(a)#['apple','banana','orange']

pop()

pop() 函数能够取出并移除列表里的一个元素,运用的办法为「pop(索引值)」,假如不指定数值或数值为 -1,则会取出最后一个元素,取出的元素假如没有赋值给变量,这些元素就会消失。

a=[0,1,2,3,4,5]
b=a.pop(2)
print(a)#[0,1,3,4,5]
print(b)#2

clear()

clear() 函数会清空整个列表的内容,使其变成一个空的列表。

a=[0,1,2,3,4,5]
a.clear()
print(a)#[]