一、列表概念
列表是最常用的数据类型之一,通过列表可以对数据实现存储、修改、遍历等操作
1、访问列表的元素:通过下标访问列表中的元素,下标从0开始计数
a=[1,2,3,4,5]
b=['name','age','sex','like']
print(a[0]) #1
print(b[0]) #name
#可以倒着输入
print(a[-1]) #5
print(b[-2]) #sex
2、切片:就是对列表元素进行切割。
b=['name','age','sex','like']
#取下标1至下标3之间的数字,包括1,不包括3
print(b[1:3]) #['age', 'sex']
#取下标1至-2的值,不包括-2
print(b[1:-2]) #['age']
##如果是从头开始取,0可以忽略
print(b[:3]) #['name', 'age', 'sex']
#如果想取最后一个,必须不能写-1,只能这么写
print(b[1:]) #['age', 'sex', 'like']
#后面的2是代表,每隔一个元素,就取一个
print(b[1::2]) #['age', 'like']
3、追加。关键字:append,在列表后面添加元素
b=['name','age','sex','like']
b.append('agdd')
print(b) #['name', 'age', 'sex', 'like', 'agdd']
b.append(['hobby','address','place'])
print(b)#['name', 'age', 'sex', 'like', 'agdd', ['hobby', 'address', 'place']]
#此时的里面的列表是一个元素
print(b[-1]) #['hobby', 'address', 'place']
4、插入。关键字:insert
b=['name','age','sex','like']
#表示索引为3的前面插入
b.insert(3,'123')
print(b) #['name', 'age', 'sex', '123', 'like']
5、修改:根据索引
b=['name','age','sex','like']
b[2]='kareng'
#sex修改为kareng
print(b) #['name', 'age', 'kareng', 'like']
6、删除
b=['name','age','sex','like']
#把索引为2的内容删除
del b[2]
print(b) #['name', 'age', 'like']
b=['name','age','sex','like']
#删除指定元素
b.remove('age')
print(b) #['name', 'sex', 'like']
b=['name','age','sex','like']
#删除最后一个元素
b.pop()
print(b) #['name', 'age', 'sex']
7、扩展。关键字:extend
b=['name','age','sex','like']
a=[1,2,3,4,5,6]
b.extend(a)#extend里面参数是iterable
print(b) #['name', 'age', 'sex', 'like', 1, 2, 3, 4, 5, 6]
8、拷贝。关键字:copy
b=['name','age','sex','like',[1,2,3]]
a=b.copy()
print(a) #['name', 'age', 'sex', 'like',[1,2,3]]
b[1]=2
print(b) #['name', 2, 'sex', 'like', [1, 2, 3]]
print(a) #['name', 'age', 'sex', 'like', [1, 2, 3]]
b[-1][1]='xiao'
print(a) #['name', 'age', 'sex', 'like', [1, 'xiao', 3]]
问题:b[1]=2时,为什么a不随着b而改变,而b[-1][1]='xiao’时,同样是修改,为什么a随着b改变?
答:b[-1][1]存的是地址,所以改变列表时和拷贝时,如果修改列表元素时,相应的a也改。
9、统计。关键字:count
b=['name', 'age', 'sex', 'like', 1, 2, 3,'like']
#统计like出现的次数
print(b.count('like')) #2
10、排序。关键字:sorted
b=['name', 'age', 'sex', 'like', 1, 2, 3]
print(b.sort()) #TypeError: '<' not supported between instances of 'int' and 'str'
报错,以为b里面的数据类型不一致,有str和int.
b=['name', 'age', 'sex', 'like',1, 2, 3]
b[-1]='3'
b[-2]='2'
b[-3]='1'
#排序
b.sort()
print(b) #['1', '2', '3', 'age', 'like', 'name', 'sex']
#翻转
b.reverse()
print(b) #['sex', 'name', 'like', 'age', '3', '2', '1']
11、获取下边。关键字:index
b=['name','like', 'age', 'sex', 'like',1, 2, 3]
#只返回第一次出现的下标
print(b.index('like')) #1
12、遍历列表。for循环
b=['name','like', 'age']
for i in b:
print(i)
运行结果:依次输出列表的内容。
name
like
age