python序列——快速学会如何使用列表,及其骚操作

8.2 列表

  • 什么是列表?

  • 列表和C语言,Java中的数组类似,它是python中的一种引用数据类型

  • 不同于数组的是,数组只能存放一种数据类型,而列表可以存放不同类型的数据类型

  • 其不仅具有堆栈的性质,还附有队列的性质,应用非常的灵活,同样也是python中序列的一种

  • 列表的字面量定义方法用[]

list1 = []  # 这样就可以直接定义了一个空列表
list2 = [1,2,True,"str",1.0] 
  • 列表的常用方法:
方法描述
list.append(x)把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
list.extend(L)通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
list.insert(i, x)在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
list.remove(x)删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i])从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)
list.clear()移除列表中的所有项,等于del a[:]。
list.index(x)返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x)返回 x 在列表中出现的次数。
list.sort()对列表中的元素进行排序。
list.reverse()倒排列表中的元素。
list.copy()返回列表的浅复制,等于a[:]。
  • 列表方法解析

list1 = []  # 列表的定义
list2 = list()  # 这样也可以定义一个空列表

#  增加数据

list1.append(1)  # 在列表的尾部追加一个数据
print(list1)

list2.append("hello")

# list1.extend(list2)  # 实现列表的拼接

list1 = list1 + list2  # 实现列表的拼接,单独使用时会引起pycharm的一些小bug,不影响程序执行

print(list1)
list2.insert(0, 1.5)

# 第一个参数是索引位置,第二个是要插入的值,在该位置插入后,其余的元素会自动往后移一位
print(list2)

# list2[2] = "你好"    # 不支持 index out of range

print("=" * 35)

# 查询读取

print(list1[0])  # 通过索引读取列表的值
print(list1[-1])  # 除了从前往后读取,还支持从后往前读取  -可以取到最后一位

print(list2.index("hello"))  # 查找列表中是否包含某个元素,如包含则返回索引,不包含则报错
print("=" * 35)

# 删除

a = list2.pop()  # 当不指定参数时默认取出最后一个,这里有点像堆栈,后进先出,同时取出来的元素可以用变量接收
# 当指定参数时,取出对应索引位置上的元素

print(a)
print(list2)

list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]

list2.remove(1)  # 从左往右,如果找到目标就将其删除,而且只会删除一个目标,如果没有找到就会返回一个错误,
print(list2)

list2.clear()  # 清空列表
print(list2)
print("=" * 35)

# 其他方法

list2 = [1, 2, 3, 4, 5, "6", 7, 8, 6, 6, "9"]

print(list2.count("1"))  # 统计某元素的个数,不会报错,不存在则返回0
print(list2.count(6))  # 2 存在则返回其个数

list1 = list2.copy()  # 复制一个列表,做备份时会用到
print(list1)

list1.remove("6")
list1.remove("9")
list1.sort()  # 对列表元素进行排序(默认升序排序),如果列表元素有多种不同数据类型的数据则会报错
print(list1)

list2.sort(key=int)  # 如果硬要对不同数据类型的元素进行排序的话就要指定,就要指定参数key作为比较依据
print(list2)

list2.sort(key=int, reverse=True)  # 如果要进行降序排序,则给reverse参数 设置为 True
print(list2)

list2.reverse()  # 翻转列表
print(list2)

  • 列表的切片与字符串切片用法一致

  • 列表是序列,所以它是有序可以迭代的,可以用for循环进行遍历

  • 列表推导式,小技巧

# 切片
list1 = [1, 2, 3, 45, 7, 8, 9]

li2 = list1[0:-1]

print(li2)

#  遍历
for item in li2:
    print(item)

# 其他技巧(python分别新手和老手一看便知)

# 列表推导式

li3 = [i for i in range(10)]  # 快速创建一个 0 ~ 9的列表
print(li3)

li4 = [i for i in range(100) if i % 2 == 0]  # 快速创建一个列表,0~99内的偶数
print(li4)

li5 = [i * 10 for i in range(1, 10)]  # 创建一个列表其元素为 10,20,30,40....90
print(li5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pointer-faker

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

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

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

打赏作者

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

抵扣说明:

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

余额充值