Python列表常用方法

定义

由一系列变量组成的可变序列容器。
通常只存一类信息

特征

列表:预留空间
列表改值内存图
列表改值内存图
列表的扩容内存图
在这里插入图片描述

列表的创建

1 方括号 []

用方括号 [] 将某些基本数据类型的数据括起来,并用‘,’逗号分隔构成了列表

lie = [1,2,3,4,5,6,7,8,9,1]
lie = ['a','d','c','d','e','d']
lie = ['a','d','c','d',2,3,44,'d']
lie = ['a','d','c','d',2,3,44,(2,3,4),'d']

2 list()

列表名 = list(可迭代对象)

list02 = list("我是齐天大圣")

3 列表推导式

#基本操作
lie = [x for x in range(10)]
#对x进一步操作
lie = [x*x for x in range(10)]
#添加限制条件
lie = [x*x for x in range(10) if x % 2 == 0]
#两层循环
A='ABC'
B='abc'
lie = [a+b for a in A for b in B]
#多个变量    
d = {'x': 'A', 'y': 'B', 'z': 'C' }
lie = [a+b for a,b in d.items()]

4 根据一个列表生成新的列表

lie1 = [11,44,22,33,44,55,11]
#直接添加一个引用,lie1,lie2实质上是同一个列表
lie2 = lie1
#将lie1的内容复制给lie3,生成的一个新的列表lie3
lie3 = lie1.copy()
#这是最直观的将一个列表中的数据加到另一个列表中
lie4 = []
for i in lie1:
    lie4.append(i)

1 append()

自动将括号内的内容增加到列表末尾

lie.append(999)
2 insert(index,object)

作用:对原列表修改。在索引前增加一个对象,可以是万物,后面的元素后移
参数:索引,对象
返回值:None
错误:参数不够时报TypeError

lie.insert(100,'aaa')
3 extend(iterable)

作用:通过append的方式将可迭代对象的元素拓展到列表中
参数:可迭代对象
返回值:None
错误:

lie.extend(lie2)
4 copy()

作用:浅拷贝一个列表
参数:无
返回值:一个列表
错误:

思考

知道数据,需要考虑增到什么位置,增加的数据是单个的,或者增加的数据就是一个列表呢,考虑的是如何增进来,途中是否是有序的增加,被增加的数据的存放形式是什么样的

pop(def=index)

作用:默认弹出最后一个,如果指定索引则弹出指定值
参数:索引
返回值:元素值
错误:列表为空,或者超出索引则返回IndexError

#根据索引弹出,pop()默认弹出最后一个,括号中指定索引,就根据索引弹出
l = [0, 1, 2, 3, 4, 2,4,5, 6, 7, 8, 9]
print(l.pop()) # 9
print(l.pop(3)) # 3
print(l.pop(45)) # IndexError: pop index out of range
remove(object)

作用:删除第一个出现的元素
参数:元素
返回值:None
错误:如果指定元素不在列表中,会报ValueError

lie2.remove(xxx)
#根据索引删除
del lie2[x]
#删除一片
del lie2[-2:]
#直接删掉整个列表
del lie2
clear()

作用:清空列表 相当于list01[:] = []
参数:无
返回值:None
错误:

#直接清空列表
lie2.clear()

自身的顺序问题,将原列表反转

#直接根据索引改
lie2[2] = 'asd'
#切片改
lie[-2:] = [10,20]
reverse()

作用:将列表反转
参数:无
返回值:None
错误:

lie2.reverse()
sort(reverse=)

作用:将列表排序,必须是同种类型,默认reverse=False为升序
参数:key(少用),reverse
返回值:None
错误:

lie2.sort(reverse=True)

count(v)

功能:统计元素在列表中的个数
参数:参数为 值
返回值:个数
错误:当 value 不存在时,返回0


l = [0, 1, 2, 3, 4, 2,4,5, 6, 7, 8, 9]
print(l) # [0, 1, 2, 3, 4, 2, 4, 5, 6, 7, 8, 9]
print(l.count(4)) # 2
print(l.count(45)) # 0
index(v,begin,stop)

功能:根据值查索引,如果有多个,则返回第一个
参数:参数为 值,起始,结束
返回值:第一个元素的索引
错误:当 value 不存在时触发ValueError错误

l = [i for i in range(10)]
print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.index(3,2,5)) # 3

超级无敌切片大法

首先切片是对一群数据的操作!等号后必须跟可迭代对象

list1 = [1, 2, 3, 4, 5]
list1[1:1] = [100, 200, 300]
[1, 100, 200, 300, 2, 3, 4, 5]

list1[1:1] = 'abc'
[1, 'a', 'b', 'c', 2, 3, 4, 5]
list1 = [1, 2, 3, 4, 5]
list1[1:1] = ''
[1, 2, 3, 4, 5]

list1[1:1] = []
[1, 2, 3, 4, 5]
list1 = [1, 2, 3, 4, 5]
list1[1:4] = [22, 33, 44]
[1, 22, 33, 44, 5]

list1[1:4] = "abc"
[1, 'a', 'b', 'c', 5]

列表的切片是浅拷贝出了一个新的列表

list1 = [1, 2, 3, 4, 5]
print(list1[1:4])
[2, 3, 4]

列表性质

#长度
print(len(lie2))
#最大值
print(max(lie2))
#最小值
print(min(lie2))
#查看索引与值
for x,y in enumerate(lie2):
    print(x,y)

一个关键问题:倒序删除

删除列表中大于10的数
采用倒序删除的方法

"""
    练习:
    在列表中[5,6,17,78,34,5]
    删除大于10的元素
    温馨提示:调试/画图
"""
list01 = [5, 6, 17, 78, 34, 5]
# for item in list01:
#     if item > 10:
#         # 删除的是变量
#         # del item
#         # 漏删(后面元素向前移动)
#         list01.remove(item)

# for i in range(len(list01)):
#     if list01[i] > 10:
#         # 错误(删除元素则总数减少)
#         del list01[i]#

# 解决:倒序删除
for i in range(len(list01) - 1, -1, -1):
    if list01[i] > 10:
        del list01[i]

print(list01)

在这里插入图片描述

参考资料一

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜘蛛da侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值