一、列表
列表:可以存储多个元素的数据类型
定义方式:变量=[元素1,元素2…]
1.列表的特点
(1)列表中元素可以是多种数据类型
(2)列表的元素是有序的,元素可以重复
(3)列表中的元素是可以被修改的,列表是可变类型
2.列表的创建
Li=[] 空列表
Li=[元素,元素……]
len(Li)求列表长度
3. 列表的操作
(1)运算符
跟str一致,+ * in not in is isnot < > == !=
1)+和* 操作后是新建的列表,+和*指的都是拼接。
需要注意的是:
print([1,2]*3)
输出:
[1, 2, 1, 2, 1, 2]
2)IS与==
IS判断的是所在内存地址是否相等,==判断的是值是否相等
A=[1,2]
B=[1,2]
A 和B的对象不是一个。
a = [1,2,3]
b = [1,2,3]
print(id(a),id(b)) #id不一致
print(id(a[0]),id(b[0])) #id一致
print(a is b)
print(a == b)
c =a
print(c is a)
输出:
1714157111560 1714157111176
1680829504 1680829504
False
True
True
3)比较
列表的比较以元素为比较标准,从第一个元素开始进行比较,逐一往后
print([1,2]<[2])
输出为:
True
(2)索引
格式:列表名[index];
功能:获取列表中的单个元素;
index 含义:正数(从左到右)、负数(从右到左) ,从0开始(第一个元素)
index等于0表示取第一个元素;
索引越界会出异常 ;
界限:[-len(li),len(li)-1];
1)列表中的元素是可以被修改的,而字符串中的元素不能被修改
li=[1,2,3]
li[0]="new"
print(li)
输出:
['new', 2, 3]
2)使用列表的索引,列表中两个元素对调
names = ["one","two","three","four"]
names[0],names[1]=names[1],names[0]
print(names)
输出:
['two', 'one', 'three', 'four']
3)给列表赋值的几种方式
li = [1,2,3]
li[0],li[1],li[2]="one","one","one"
li[0],li[1],li[2]=["one"]*3
for i in li:
i = "one"
print(li)
(3)切片
格式:列表名[start:end:step]
功能:可以获取列表中的多个元素,包含start,不包含end
start:默认为0
end:默认为len(li)
step:切片的方向和步长 正数,从左向右,负数,从右向左,默认值1
start,end越界不报错 取到最小/最大值
列表的整切片是新创建的对象。
1)列表的切片赋值和插入
li[a:a]表示在index=a的位置插入一个元素
li[a:a+1]表示将index=a的元素进行赋值
li = [1,2,3,4,5]
li[1:2]="one" #将index=1赋值,之前的元素被取代
print(li)
li1 = [1,2,3,4,5]
li1[1:1]="one" #在index=1的位置插入元素
print(li1)
输出:
[1, 'o', 'n', 'e', 3, 4, 5]
[1, 'o', 'n', 'e', 2, 3, 4, 5]
2)列表元素的删除
li[a:a]的方式无法删除元素,因为取不到元素
li = [1,2,3,4,5]
li[1:3]=[]
print(li)
输出:
[1, 4, 5]