列表(list)是可变序列类型,可进行追加,插入,删除,替换
================
创建列表
1
list(itera:参数iterable是可迭代对象(字符串,列表,元组,集合和字典等)
list("hello")
2
元素1,元素2,元素3,......:指定具体的列表元素,元素之间以逗号分隔,对列表元素需要使用方括号括起来
1,2,3,4,5
php
#=============列表
a=[]#创建空列表
#[]
b=["hello","world","1","2","3"]#创建一个字符串和整数混合的列表
#['hello', 'world', '1', '2', '3']
c=[10]#创建只有一个元素的列表
#[10]
d=[2,]#列表中每个元素的后面都跟着一个逗号,但经常省略这个逗号
#[2]
e=list("qwer ")#通过list(iterable)函数创建列表对象,字符串是序列对象,创建的列表对象包含5个字符(空格也是字符)
#['q', 'w', 'e', 'r', ' ']
print(a)
print(b)
print(c)
print(d)
print(e)
=====================================
追加元素
列表是可变的序列对象,在列表中追加元素
1
在列表中追加单个元素,append(x)方法
list.append(2)
2
追加多个元素,+或extend(t)方法
list+=t, list.extent(t)
方法和函数的区别:
方法属于类,需要通过类或对象调用
python
#函数:直接调用,不需要对象
a=[1,2,3,4,5,6]
print(len(a))#6
print(len([1,2,3]))#3
#方法,通过对象调用,用点号
a=[1,2,3]
a.clear()
print(a)#[]
eg: list.append(2)中,list是列表对象,函数不属于任何类,直接调用即可,例如list(iterable)
python
#================追加元素
a=[10,9,8,7,6]
a.append(5)
print(a)
#在列表后面追加一个元素,不能同时追加很多元素
#[10, 9, 8, 7, 6, 5]
b=[1,2,3,4]
t=[5,6,7,8]
b+=t
print(b)
#使用+=运算符,追加多个元素
#[1, 2, 3, 4, 5, 6, 7, 8]
c=[0,9,8,7]
i=[1,2,3,4]
c.extend(i)
print(c)
#extend追加多个元素
#[0, 9, 8, 7, 1, 2, 3, 4]
===================================
插入元素
insert(i,x)方法
i指定索引,x是要插入的元素
python
元素:x y z c v b
索引:0 1 2 3 4 5
a=['x','y','z','c','v','b']
a.insert(2,'n')
print(a)
#输出['x', 'y', 'n', 'z', 'c', 'v', 'b']
元素:x y n z c v b
索引:0 1 2 3 4 5 6
#在索引2的位置插入一个n
===============================
替换元素
将列表的下标索引元素放在赋值符号(=)的左边,进行赋值即可
python
x=[1,2,3,4,5]
x[1]=0
print(x)
#输出:[1, 0, 3, 4, 5]
===================================
删除元素
remove(x)方法,如果找到匹配的元素x,则删除该元素,如果找到多个匹配的元素,则只删除第一个匹配的元素
python
#=========删除
print("一个匹配的")
a=[1,2,3,4]
a.remove(1)
print(a)
#[2, 3, 4]
print("多个匹配的")
b=[6,6,6,7,8,9]
b.remove(6)
print(b)
#[6, 6, 7, 8, 9]
========================================补充
pop()------删除并返回元素
remove()是按值删除,pop()是按索引删除,并且会返回被删除的元素
python
x=[1,2,3,4]
d=x.pop(2)
print(d)
#3
b=[1,2,3,4]
z=b.remove(2)
print(z)
#None
clear()------清空列表
python
a=[1,2,3,4]
a.clear()
print(a)
#[]
count()------统计元素出现次数
python
a=[2,2,2,5,6,7]
print(a.count(2))
#3
index()------查找元素位置
python
a=[1,2,3,4,5]
print(a.index(2))
#1
#如果要查找的元素不存在,会报ValueError
sort ()和reverse()-----------排序和反转
python
a=[23,54,12,67,46]
a.sort()
print(a)
#[12, 23, 46, 54, 67]
b=[1,2,3,4,5]
b.reverse()
print(b)
#[5, 4, 3, 2, 1]
#为啥写成print(a.sort())和print(b.reverse())就会显示None呢?
#为啥写成print(a.sort())和print(b.reverse())就会显示None呢?
sort()和reserve()都是原地操作方法---他们会直接修改原列表,但不返回任何值,(返回None)
python
a=[1,2,3]
a.sort()#None,因为sort()返回None
print(a)#[1,2,3]
记住:当你调用一个方法时,如果它返回None,就不要把它放到print()里,因为打印出来就是None
修改原
python
方法 是否修改原列表 返回值
append() ✅ 修改 None
extend() ✅ 修改 None
insert() ✅ 修改 None
remove() ✅ 修改 None
pop() ✅ 修改 被删除的元素
clear() ✅ 修改 None
sort() ✅ 修改 None
reverse() ✅ 修改 None
count() ❌ 不修改 整数
index() ❌ 不修改 整数
列表的方法通常返回None,返回新值的方法,通常不修改原列表