# 下标访问列表
l =[3,1,4,2,8,9,6]# 访问列表 l 列表中下标为 0 的元素print(l[0],"\n")# 遍历并打印 l 列表的每个元素for i inrange(0,len(l)):print("列表的第{0}个元素为:{1}".format(i+1,l[i]))print("\n")# 分片操作 [n:m]# 注意截取的范围,包含左边的下标值 n,不包含右边的下标值 mprint(l[1:3])print("\n")# 下标值可以为空,左边为空则下标默认为 0,右边为空则默认为列表长度加 1,即截取至最后print(l[:])print(l[2:])print(l[:3])print("\n")# 分片可以控制增长幅度(即步长),默认增长幅度为1print(l[2:6])print(l[2:6:1])print(l[2:6:2])print("\n")# 下标可以超出范围,超出后不在考虑多余下标的内容print(l[2:1000])print(l[-100:2])print("\n")# 下标值的增长幅度可为负数,即顺序是从右往左# 规定:列表最后一个元素的下标是 -1# 正常情况下,分片左下标小于右下标的值# 当分片左下标必须大于右小标的值时,步长为负数即可,此时注意截取为倒序print(l)print(l[-2:-4])# 结果为空,因为分片默认从左向右截取print(l[-4:-2])print(l[-2:-4:-1])# 将原列表元素顺序颠倒:print(l[::-1])print("\n")# 分片操作是生成一个新的列表# 内置函数 id,负责显示一个变量或者数据的唯一确定编号# id 函数案例
a =100
b =200print(id(a))print(id(b))
c = a
print(id(c))# a 与 c 的 id 值一致
a =111print(a,id(a))# 重新赋新值给 a,即 a 这个标签贴在新值上,id(a)被更改print(c,id(c))print("\n")# 通过 id 可以直接判断出分片是否新生成一个列表
ll = l[:]
lll = ll
print(id(l))print(id(ll))print(id(lll))print("\n")# 通过以上 id 可知,ll 和 lll 是同一个列表,验证如下:
l[1]=1000print(l)print(ll)print(lll)
ll[1]=2000print(ll)print(lll)
# 关于列表的函数# 列表可以装任何东西
l =['a','I like Python',12,5+4j]print(l)# append 插入一个元素,在末尾追加
a =[i for i inrange(1,5)]print(a)
a.append(100)print(a,"\n")# insert(index,data) 指定位置插入元素print(a)
a.insert(3,666)print(a,"\n")# index 查找里元素所在位置print(a.index(3),"\n")# count 统计元素在列表中出现的次数
a.append(3)print(a.count(3),"\n")# sort 按照 ascii 码排序
a.sort()print(a,"\n")# extend 拼接两个列表
b =["拼接的列表元素"]
a.extend(b)print(a,"\n")# pop 删除最后一个元素print(a)
last_pop = a.pop()print(last_pop)print(a,"\n")# del 删除del a[0]# remove 删除指定的元素# 如果被删除的元素不在列表中,则报错# 如果不希望报错,在使用 remove 时应借助 try...excepty,或者先行判断:# if x in list:# list.remove(x)print(a)print(id(a))
a.remove(4)print(a)print(id(a),"\n")# 输出两个 id 值一致,说明 remove 操作是在 原列表上直接操作# clear 清空print(a)print(id(a))
a.clear()print(a)print(id(a),"\n")# 如果不需要列表地址保持不变,则清空列表可使用以下方式print(a)print(id(a))
a =list()# 或者 a = []print(a)print(id(a),"\n")# reverse 原地翻转列表内容,翻转前后 id 一致
a =[1,3,45,5]print(a)print(id(a))
a.reverse()print(a)print(id(a),"\n")
# 赋值 = 与 copy 浅拷贝# 列表类型变量赋值示例
a =[1,2,3,4,5,6]print(a)# list 类型,简单赋值操作,是传地址,a 和 b 的 id 一致
b = a
b[1]=777print(a)print(id(a))print(b)print(id(b))print("-"*40)# copy 浅拷贝相当于新建一个列表,id 不一致
c = a.copy()print(a)print(id(a))print(c)print(id(c))print("-"*40)
c[1]=888print(a)print(c)