Python学习笔记第六章


列表相当于一个大容器,可以存储N多个元素,程序可以方便的对所存储的数据进行整体的操作,
其相当于其他语言的数组

列表的创建与删除

在这里插入图片描述
列表的示意图:
在这里插入图片描述
有索引
数据
a = 10#变量,只存储一个变量的值
则id=886
type = int
value= 10
a中存储的是id的值,并指向这个id

列表的创建

1.使用中括号
2.调用内置函数list()
lst = [‘打赏’,‘你好’]
列表名 赋值符号 中括号 逗号

// An highlighted block
#中括号来创建
lst =['hello ','world',98]

# 采用内置函数来创建

lst2 = list(['hello ','world',98])

列表的特点

1.列表的元素按顺序有序排列
2.索引来映射唯一的数据
3.列表可以用来存储相同的数值
4.任意数据类型混存,具有强大的包容性
5.根据需要动态分配和回收内存(存多少个数据都行,不用担心多,不用担心不够用)
逆序-9 -8 -7…-1
顺序1 2 3 4…9

// An highlighted block
#中括号来创建
lst =['hello ','world',98]
print(lst[0],lst[-3])# 两个输出是一样的
# 采用内置函数来创建

lst2 = list(['hello ','world',98])

列表的查询操作

获取列表中指定元素的索引

index:1.存在n个相同元素时,只返回相同元素的第一个元素的索引

// An highlighted block
lst = ['hello','world',98,'hello']
print(lst.index('hello'));

这里这回返回0
2.如果该查找的元素不存在则会返回ValueError

// An highlighted block
lst = ['hello','world',98,'hello']
print(lst.index('hello'))
print(lst.index('hello',1,3))#这里会报错,因为13位置没有hello

获取列表中的单个元素

正向索引:0-N-1
逆向索引:-N–1
指定的索引位置不存在则会出现index error:一般会告诉你超出或不在范围。

获取列表中的多个元素

语法格式:

列表名[start:stop:step],
切片操作
1.结果:原列表片的拷贝
2.范围:(start,stop)
3.step默认的步长为1

判断指定的元素是否在列表中存在

用in
not in:他们的输出值为布尔值true or false

列表的遍历元素

for 迭代变量 in 列表名:
操作执行体
目前已知的可迭代变量有字符串,列表,数字

列表元素的增,删,改操作

增加

append()
append(要添加的元素)

// An highlighted block
lst = [10,20,30]
print('添加之前',lst,id(lst))
lst.append(100)
print('添加之后',lst,id(lst))#他们的id都一样,只是把原来的列表后面的末尾添加了该元素
// An highlighted block
lst = [10,20,30]
print('添加之前',lst)
lst.append(100)
print('添加之后',lst)
lst2 = ['hello','world']
lst.append(lst2)# 把lst2单独作为一个元素加到lst
print('添加之后',lst)

extend()
extend(要扩展的元素)

// An highlighted block
lst = [10,20,30]
print('添加之前',lst)
lst.append(100)
print('添加之后',lst)
lst2 = ['hello','world']
lst.extend(lst2)# 把lst2中的元素一个一个元素加到lst的末尾
print('添加之后',lst)

insert()
含义:在该位置插入一个数值,该原有的元素往后移
insert(插入的位置,插入的值)

// An highlighted block
lst = [10,20,30]
print('添加之前',lst)
lst.append(100)
print('添加之后',lst)
lst2 = ['hello','world']
lst.append(lst2)# 把lst2单独作为一个元素加到lst
print('添加之后',lst)
lst.insert(1,9)
print(lst)

切片式添加
把切掉的部分用新的列表去替换

// An highlighted block
# 切片式
lst3 = ['true','false','in']
lst[1::] = lst3
print(lst)

元素的删除操作

remove()

// An highlighted block
lst = [20,30,40,50,56]
print(lst)
lst.remove(30)
print(lst)

一次只能删除一个元素
对于重复的元素,只会删除第一个
元素不存在会抛出 value error

pop():会删除掉指定的索引元素

// An highlighted block
lst = [20,30,40,50,56]
print(lst)
lst.remove(30)
print(lst)
lst.pop(0)
print(lst)
lst.pop()# 不指定的情况下会删除最后一个元素
print(lst)

切片操作,可删除至少一个元素,但将产生一个新的新列表

// An highlighted block
print('输出列表的切片删除工作')
new_list = lst[1:2]# 把1元素给窃走了,并赋值给新列表
print('源列表:',lst)
print('新列表:',new_list)

clear()清空列表的所有元素

del语句,直接删除列表

列表元素的改操作

为指定的索引元素赋予一个新的数值

// An highlighted block
lst = [20,30,40,50,56]
# 一次修改
print(lst)

lst[1] = 100
print(lst)

为指定的切片赋予一个新的值

// An highlighted block
lst[1:3] =[300,400,500]
print(lst)

列表的元素的排序

方式一:调用sort()方法,列表的所有元素默认按照从小到大的顺序进行排列,可以指定reverse = true进行降序排列

// An highlighted block
lst = [20,30,40,98,100,50,56]
print('排序前的列表',lst,id(lst))
lst.sort()
print('排列后的列表',lst,id(lst))
// An highlighted block
lst = [20,30,40,98,100,50,56]
print('排序前的列表',lst,id(lst))
lst.sort(reverse=True)
print(lst)

方式二:调用内置函数sorted(),可以指定reverse = true,降序排列,源列表不发生变化

// An highlighted block
print('-----------使用新的内置函数产生排序,并产生一个新的列表对象-----------')
lst = [20,30,40,98,100,50,56]
print('排序前的列表',lst,id(lst))
new_list = sorted(lst)
print(lst)
print(new_list)
desc_list = sorted(lst,reverse = True)
print(desc_list)

列表生成式

简称为:生成列表的公式

语法格式:

[i*i for i in range(1,10)]
i * i:表示列表元素的表达式
i:自定义的变量
range():可迭代的对象

// An highlighted block
lst = [i*i for i in range(1,10)]# 1-9赋值给i,所以选择i作为元素
print(lst)
# 列表中的元素为246810
lst2 = [i*2 for i in range(1,6)]
print(lst2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值