一小时学会Python3爬虫基础(七)高级数据的全部操作:列表

前言

这回来学一下列表这个玩意,这种数据类型在后续的学习中,会经常提到!也是变成中最常用的一类数据。

列表

列表是什么?其实就是可以存储很多个数据一种数据类型,你可以想想把字符串等,数字等数据都可以往里面加,重点是这列表还允许重复出现相同类型的数据。

列表查找

跟字符串一样,列表也是具备查找功能,有查找就有索引,那索引上回说字符串的也解释过了,这里也不赘述了!所以咱们直接看列表的索引具体是怎么发挥作用的。

1. 索引(下标)

练习代码

name_list = ['Tom','Julia','Rose','lily']
print(name_list[0]) 	# 找到Tom
print(name_list[3]) 	# 找到lily
2. index()函数

用于寻找列表中存在的数据,并且返回该数据的下标位置。
语法:列表序列.index[‘数据’,开始位置下标,结束位置下标]
练习代码

name_list = ['Tom','Julia','Rose','lily']
print(name_list.index('Tom'))   # 0
print(name_list.index('Tom',0,2)) # 0
3. count()该函数

用于计算,某个数据的所存在的数量
语法: 列表序列.count(“数据”)
练习代码

name_list = ['Tom','Julia','Rose','lily']
print(name_list.count("Tom")) # 返回值 1
4. len()函数

用于访问列表的长度,也就是列表所存在多少个数据
语法: len(列表序列)
练习代码

name_list = ['Tom','Julia','Rose','lily']
print(len(name_list))  # 返回值 4

列表判断

1. in

判断指定某个数据 是否存在于 该某个序列中如果存在就会返回值 True 不存在就会返回值False
语法:“数据” in 列表序列
练习代码

name_list = ['Tom','Julia','Rose','lily']
print('Tom' in name_list) # 返回值 True
print('lisaby' in name_list) #返回值 False
2. not in

判断某个数据不存在于某个序列里如果不存在就会返回True ,存在就会返回值False
语法:“数据” not in 列表序列
练习代码

name_list = ['Tom','Julia','Rose','lily']
print('Tom' not in name_list) # 返回值 False
print('lisaby' not in name_list) # 返回值 True
3.体验案例

需求:要让用户输入名字,判断是否存在
练习代码

name_list = ['Tom','Julia','Rose','lily']

name = input("请输入名字:")

if name in name_list:
    print(f"您"
          f"输入的名字{name}存在")
else:
    print(f"您输入的名字{name}不存在")

列表增删

作用:增加或者删除列表中被指定的数据

1. append()

在列表的最末端逐一添加数据
语法:列表序列.append(“数据”)
练习代码

name_list = ['Tom','Julia','Rose','lily']
name_list1 = ['Tom','Julia','Rose','lily']
name_list.append("lishaaaaa")
print(name_list)
name1 =name_list.append(name_list1)
print(name_list)

注意:如果append 追加的是一个序列,则会将整个序列的数据追加

2. extend()

在列表的最尾端逐一添加 单个字符数据。
语法:列表序列.extend(“数据”)
练习代码

name2_list = ["Tom"]
name2_list.extend("abcdefg")
print(name2_list)
name2_list.extend(["caie","cieae"])
print(name2_list)

注意:该函数是将数据逐一添加在 某序列结尾

3. insert()

指定位置增加数据
语法:列表序列.insert(添加数据的下标位置,”数据“)
练习代码

name_list = ['Tom','Julia','Rose','lily']
name_list.insert(1,"BBC")
print(name_list)
4. del 删除

语法:del 目标
练习代码

name_list = ['Tom','Julia','Rose','lily']
del name_list[0]
print(name_list)	 #删除指定列表的某个数据
del name_list		 #删除整个列表

5. pop()

删除指定下标的数据,如果不指定直接删除列表结尾一个数据
语法:列表序列.pop(下标)
练习代码

name_list = ['Tom','Julia','Rose','lily']
pop_name = name_list.pop()
pop_name1 = name_list.pop(1)
print(name_list)

print(pop_name)
print(pop_name1)

注意:pop()如果没有指定索引,那会直接删除列表最后一个数据,但是无论是上述两种方式,结果都是pop函数都会返回这个被删除的数据!

6. remove()

删除指定的特定数据
语法:列表序列.remove(“数据”)
练习代码

name_list = ['Tom','Julia','Rose','lily']
name_list.remove("Tom")
print(name_list)
7. clear()

删除整个列表里的数据,清空
语法:列表序列.clear()
练习代码

name_list = ['Tom','Julia','Rose','lily']
name_list.clear()
print(name_list)

列表修改

1. 修改指定下标的数据

练习代码

name_list = ['Tom','Julia','Rose','lily']
name_list[0] = "aaa"
print(name_list)
2. reverse()

将列表数据倒序,逆置
语法:列表序列.reverse()
练习代码

name_list = ['Tom','Julia','Rose','lily']
name_list.reverse()
print(name_list)
3. sort()

排序,理清顺序!默认升序
语法:列表序列.sort(key = None, reverse = False)
key是指定的排序标准的函数
reverse表示排序规则,reverse = True 降序,reverse = False 升序 (默认)
练习代码

num_list = [1,3,4,9,2,7,8,5,0,6]
num_list.sort(reverse = True)

列表复制

copy()

将想要复制的列表序列,直接复制到新变量中
语法:原列表序列.copy()
练习代码

name_list = ["Tom","lisi","Julia","agitou"]
name_list1 = name_list.copy()
print(name_list1)

注意:如果将列表 赋予 给另外一个变量,虽然也能得到相对应的列表,但是该新变量要是发生改变,旧变量也会发生变化,这种的不属于拷贝范围。
实例代码:请注意区别两者真复制和伪复制

name_list = ["Tom","lisi","Julia","agitou"]
name_list2 = name_list
print(name_list2)
name_list2[0] = "caec"
print(name_list)

列表循环遍历

列表的循环遍历就是将,这个数据内所有的子数据逐一给提取出来的过程叫做遍历。
然后我们在学习了循环语句,知道的有两个循环关键词,分别是while和for,这两个都可以对其循环遍历。

1.while循环遍历
name_list = ["Tom","lisi","Julia","agitou"]
i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1
2.for循环遍历
name_list = ["Tom","lisi","Julia","agitou"]
for x in name_list:
    print(x)

可以看得出来for循环遍历要比whlie简洁并且简单

列表嵌套

嵌套列表也就是所谓”2D列表“,就是一个列表里存在子列表,简单就是列表里加列表。
可以通过下标的方式 找到特定的数据,每个子列表

name_list = [['1','2','3'],['4','5','6'],['7','8','9']]
num = name_list[0][1]   # 这句的意思是,从第一个大框中,选择下标为0的数据,然后在对下标为的数据,再次索引到这个数据下标的数据
print(num) 				# 会输出2

列表的综合应用

需求:有三个办公室,然后要将8位老师随机分配到该教室中
逻辑:1.三个空办公室,八个老师 2.随机分配到三个办公室中

解体代码

offices = [[],[],[]]
teachers = ["李老师","王老师","牛老师","黄老师","庄老师","陈老师","毕老师","何老师"]
import random
for name in teachers:
    num = random.randint(0,2)
    offices[num].append(name)
i = 1
for office in offices:
    print(f"办公室{i}人数为{len(office)}")
    for name in office:
        print(name,end = '')
    print()
    i += 1

在这里插入图片描述

总结

上述就是列表常用的函数,以及一些细节,接下来我们要学习字典的增删查找改!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不世人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值