列表的定义
列表内的每一个数据,称之为元素
- 以 [] 作为标识
- 列表内每一个元素之间用, 逗号隔开
my_list=['csdn',"ssss",666,True,[1,2,3]] print(my_list) print(type(my_list))
注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套
列表的下标(索引)
正向索引:从前向后的方向,从0开始,依次递增
反向索引:从后向前:从-1开始,依次递减(-1、-2、-3......)
my_list=['csdn',"ssss",666,True,[1,2,3]] print(my_list[0]) print(my_list[1]) print(my_list[2]) print(my_list[-1]) print(my_list[-2]) print(my_list[-3])
csdnssss666[1, 2, 3]True666
嵌套的列表同理
my_list2=[[1,2,3],[4,5,6],[7,8,9]] print(my_list2[0][0]) print(my_list2[-1]) print(my_list2[-1][-1])
1
[7, 8, 9]
9
列表的常用操作
查找某元素的下标index
功能:查找指定元素在列表的下标,如果找不到,报错ValueError
语法:列表.index(元素)
index就是列表对象(变量)内置的方法(函数)
my_list=['csdn',"ssss",666,True,[1,2,3]] tmp=my_list.index(666) print(tmp)
2
修改特定位置(索引)的元素值
语法:列表[下标] = 值
可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)
my_list2=[[1,2,3],[4,5,6],[7,8,9],666] my_list2[-1]=777 my_list2[2][1]=888print(my_list2)
[[1, 2, 3], [4, 5, 6], [7, 888, 9], 777]
插入元素insert
语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
my_list=['csdn',"ssss",666,True,[1,2,3]] my_list.insert(1,789) print(my_list)
['csdn', 789, 'ssss', 666, True, [1, 2, 3]]
追加元素append
语法:列表.append(元素),将指定元素,追加到列表的尾部
my_list=['csdn',"ssss",666,True,[1,2,3]] my_list.append([6,6,6]) my_list.append(False) print(my_list)
['csdn', 'ssss', 666, True, [1, 2, 3], [6, 6, 6], False]
追加元素方式extend
语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部
my_list=['csdn',"ssss",666,True,[1,2,3]] my_list.extend([123,"sb",[6]]) print(my_list)
['csdn', 'ssss', 666, True, [1, 2, 3], 123, 'sb', [6]]
删除元素pop与del
语法1: del 列表[下标]
语法2:列表.pop(下标)
pop删除元素并返回删除的元素
my_list=['csdn',"ssss",666,True,[1,2,3]] my_list.pop(0) print(my_list) tmp=my_list.pop(2) print(my_list) print(tmp)
['ssss', 666, True, [1, 2, 3]]
['ssss', 666, [1, 2, 3]]
True
del为指定删除,不返回删除元素
my_list=['csdn',"ssss",666,True,[1,2,3]] del my_list[0] print(my_list) del my_list[-1] print(my_list)
['ssss', 666, True, [1, 2, 3]]
['ssss', 666, True]
删除某元素在列表中的第一个匹配项remove
语法:列表.remove(元素)
删除从前往后第一个元素
my_list=['csdn',True,"ssss",True,666,True,[1,2,3]] my_list.remove(True) print(my_list) my_list.remove([1,2,3]) print(my_list)
['csdn', 'ssss', True, 666, True, [1, 2, 3]]
['csdn', 'ssss', True, 666, True]
清空列表内容clear()
语法:列表.clear()
my_list=['csdn',"ssss",666,True,[1,2,3]] my_list.clear() print(my_list)
[]
统计某元素在列表内的数量count
语法:列表.count(元素)
my_list=['csdn',"ssss",666,True,[1,11,"111",'1'],1,1,1] num1=my_list.count(1) num2=my_list.count("csdn") print(num1) print(num2)
4
1
可见,count会查找容器里面所以同类型元素,包括嵌套容器里面的
统计列表内元素len
语法:len(列表)
my_list=['csdn',"ssss",666,True,[1,11,"111",'1']] num=len(my_list) print(num)
5
不包括嵌套容器里面元素
使用方法总结
列表特点
经过上述对列表的学习,可以总结出列表有如下特点:
- 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
- 可以容纳不同类型的元素(混装)
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加或删除元素等)
列表的遍历
- while循环
my_list=['csdn',True,"ssss",True,666,True,[1,2,3]] index=0while index<len(my_list): e=my_list[index] print(e) index+=1print(my_list)
csdn
True
ssss
True
666
True
[1, 2, 3]
['csdn', True, 'ssss', True, 666, True, [1, 2, 3]]
- for循环
my_list=['csdn',True,"ssss",True,666,True,[1,2,3]] for i in my_list: print(i) print(my_list)
csdn
True
ssss
True
666
True
[1, 2, 3]
['csdn', True, 'ssss', True, 666, True, [1, 2, 3]]
while循环和for循环,都是循环语句,但细节不同:
在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定循环条件,只可以一个个从容器内取出数据
在无限循环上:
while循环可以通过条件控制做到无限循环
for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:
while循环适用于任何想要循环的场景
for循环适用于,遍历数据容器的场景或简单的固定次数循环场景