Python与网络爬虫——列表与元组

目录

导读

[1.1 列表的概述](#1.1 列表的概述)

[1.2 列表的遍历](#1.2 列表的遍历)

[1.2.1 使用while循环遍历列表](#1.2.1 使用while循环遍历列表)

[1.2.2 使用for循环遍历列表](#1.2.2 使用for循环遍历列表)

[1.3 列表的基本操作](#1.3 列表的基本操作)

[1.3.1 增加元素](#1.3.1 增加元素)

[1.3.2 查找元素与计数](#1.3.2 查找元素与计数)

[1.3.3 删除元素](#1.3.3 删除元素)

[1.3.4 分片赋值](#1.3.4 分片赋值)

[1.3.5 列表排序](#1.3.5 列表排序)

二、元组

[2.1 元组的基本操作](#2.1 元组的基本操作)

[2.1.1 合并元组](#2.1.1 合并元组)

[2.1.2 元组的遍历](#2.1.2 元组的遍历)

[2.2 元组的内置函数](#2.2 元组的内置函数)

三、案例实战


导读

在计算机应用领域中,常常会遇到需要处理大量数据的问题,其特点是:数据量很大,数据之间存在一定的内在关系。例如,一个班有100个学生,如果用字符串变量存储学生的名字,那么需要100个变量,可见用字符串变量来处理这样的数据将十分不方便,甚至不能处理,本文将介绍如何使用列表和元组数据结构解决这一类问题。

一、列表

1.1 列表的概述

列表(list)是包含0个或多个元素的有序序列,属于序列类型。

  • 列表的长度和内容都是可变的,可自由对列表中的元素进行增加、删除或替换。
  • 列表没有长度限制,元素类型可以不同,可以同时包含整数、实数、字符串等基本类型,也可以是列表、元组、字典、集合以及其他自定义类型的对象,使用非常灵活。

创建列表的方式很简单,只需将逗号分隔的不同元素使用方括号括起来即可。例如:

python 复制代码
>>>animal = ['elephant', 'monkey', 'snake', 'tiger']	
>>>animal				
['elephant', 'monkey', 'snake', 'tiger']

与字符串的索引一样,列表索引也是从0开始的。我们可以通过下标索引的方式来访问列表中的值

python 复制代码
>>>animal[0]		
'elephant'

++**注意:**与整数和字符串不同,列表要处理一组数据,因此,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象,只是产生对原有列表的一个新的引用。++

例:列表的赋值与引用:

python 复制代码
stu_1 = ['001', 'Wangwu', 98]	#使用数据赋值创建列表stu_1
stu_2 = stu_1		#stu_2是stu_1所对应数据的引用,stu_2并不包含真实数据
print(stu_1, stu_2)			#输出stu_1和stu_2
stu_1[0] = '002'			#修改元素stu_1[0]的值为'002'
print(stu_1, stu_2)			#输出stu_1和stu_2

程序运行结果如下:

也可以使用list()函数将字符串、range对象、元组等对象转换为列表。其语法格式为list(obj),其中obj为需要转换的对象。

python 复制代码
>>>list('hello world')				#将字符串转换为列表
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>>list(range(1,10,2))				#将range对象转换为列表
[1, 3, 5, 7, 9]

1.2 列表的遍历

1.2.1 使用while循环遍历列表

使用while循环遍历列表,首先需要获取列表的长度,将获取的列表长度作为while循环的判断条件。例:使用while循环遍历列表;

python 复制代码
animal = ['elephant', 'monkey', 'snake', 'tiger']		#创建列表animal
length = len(animal)				#获取列表的长度赋给length
i = 0						#循环遍历i初值为0
while i < length:					#当i小于length时循环
    print(animal[i])					#输出列表元素
    i += 1						#循环变量加1

1.2.2 使用for循环遍历列表

使用for循环遍历列表的方式非常简单,只需要将要遍历的列表作为for循环表达式中的序列即可。

python 复制代码
animal = ['elephant', 'monkey', 'snake', 'tiger']	#创建列表animal
for name in animal:			#将要遍历的列表作为for循环表达式中的序列
    print(name)				#输出name

1.3 列表的基本操作

1.3.1 增加元素

append()方法:使用append()方法可在列表末尾添加新的元素。

list.append(obj)

list 表示列表
obj表示添加到列表末尾的对象

python 复制代码
>>>add_list = [0,1,2,3]	#创建列表add_list并赋值
>>>add_list.append(4)	#使用append()方法给add_list末尾添加元素4
>>>add_list		#打印add_list
[0, 1, 2, 3, 4]

extend()方法:使用extend()方法可在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

例:比较extend()方法与append()方法添加列表元素的不同。

python 复制代码
list_1 = [1,2,3]			#创建列表list_1并赋值
list_2 = [4,5,6]			#创建列表list_2并赋值
list_3 = [7,8,9]			#创建列表list_3并赋值
list_1.append(list_2)		#将list_2看作一个对象,整体打包添加到list_1对象中
print(list_1)			#输出list_1
list_2.extend(list_3)			#将list_3看作一个序列,将这个序列和list_2序列合并
print(list_2)			#输出list_2

insert()方法:使用insert()方法可将指定对象插入到列表的指定位置。

list 表示列表
index 表示对象需要插入的索引位置
obj 表示要插入列表中的对象

python 复制代码
>>>number = [1,2,4,5]	#创建列表number并赋值
>>>number.insert(2,3)	#使用insert()方法将元素3添加到列表索引为2的位置中
>>> number		#打印number
[1, 2, 3, 4, 5]

1.3.2 查找元素与计数

index()方法:用于返回指定元素在列表中首次出现的位置,如果该元素不在列表中则抛出异常。

例:在列表中查找元素,如果找到,输出该元素在列表中的索引位置,否则输出未找到。

python 复制代码
animal = ['elephant', 'monkey', 'snake', 'tiger']		#创建列表animal
x = input('请输入要查找的动物名称:')			#输入要查找的元素
if x in animal:					#查找是否存在
    a = animal.index(x)				#返回索引
    print('元素{0}在列表中的索引为:{1}'.format(x,a))	#输出索引号
else:
    print('列表中不存在该元素')			#输出未找到信息

count()方法:统计指定元素在列表中出现的次数。

python 复制代码
>>>x = [1,2,1,2,1,2]		#创建列表
>>>x.count(1)			#使用count()方法统计1在变量x中的出现次数
3

1.3.3 删除元素

del命令:可根据索引删除列表中的元素,还可以使用分片的方式删除列表中的元素。

python 复制代码
>>>number = [1,2,3,4,5]		#创建列表number并赋值
>>>del number[2]		#使用del命令删除number中索引为2的元素
>>>number			#打印number
[1, 2, 4, 5]

>>>number = [1,2,3,4,5]		#创建列表number并赋值
>>>del number[1:3]		#使用del命令删除索引从1到3(不包括3)的元素
>>>number			#打印number
[1, 4, 5]

pop()方法:用于移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值。

list.pop([obj])

list 表示列表
obj 为可选参数,表示移除列表元素的索引值,默认为 -1 ,删除最后一个列表值

python 复制代码
>>>number = [1,2,3,4,5]	#创建列表number并赋值
>>>number.pop()		#使用pop()方法删除number中的元素
5
>>>number		#打印number
[1, 2, 3, 4]
>>>number.pop(0)	#使用pop()方法删除number中索引为0的元素
1
>>>number		#打印number
[2, 3, 4]

remove()方法:用于移除列表中某个值的第一个匹配项。

例:删除列表中所有的指定元素。

python 复制代码
x = ['123','abc','xyz','abc','python']		#创建列表x并赋值
while 'abc' in x:				#循环
    x.remove('abc')				#使用remove()方法删除x中值为'abc'的元素
print(x)					#输出x

1.3.4 分片赋值

分片赋值就是以分片的形式给序列赋值,可以一次为多个元素赋值。
分片赋值还可以在不替换任何原有元素的情况下插入新的元素。
分片赋值也可以用来删除元素。

python 复制代码
>>>x = [1, 2, 3, 4]	#创建列表并赋值
>>>x		#打印列表x
[1, 2, 3, 4]
>>>x[2:] = [5, 6, 7]#替换变量x索引从2开始到最后的元素
>>>x		#打印变量x
[1, 2, 5, 6, 7]

>>>x = [1,7]		#创建列表并赋值
>>>x[1:1(不包含)] = [2,3,4,5,6]	#在变量x中索引为1的位置插入列表[2,3,4,5,6]  
>>>x			#打印变量x
[1, 2, 3, 4, 5, 6, 7]

>>>x = [1, 2, 3, 4, 5, 6, 7]	#创建列表并赋值
>>>x[1:6] = []	#用空列表将x中索引1到索引6之间的元素替换
>>> x		#打印变量x
[1, 7]

1.3.5 列表排序

reverse()方法:用于将列表中的元素反向存放。

python 复制代码
>>>x = [1,2,3,4]				#创建列表并赋值
>>>x.reverse()				#使用reverse()方法将变量x中的元素反向存放
>>>x					#打印变量x
[4, 3, 2, 1]

sort()方法:用于对原列表进行排序(默认为升序排序),排序后的新列表会覆盖原列表。

list.sort([key=None][,reverse=False])(后续程序简单,不再做演示)

list 表示列表
key 为可选参数,如果指定了该参数,会使用该参数的方法进行排序
reverse 为可选参数,表示是否反向排序,默认为 False

sorted()函数:与sort()方法不同,内置函数sorted()返回新列表,并不对原列表进行任何修改。

sorted(iterable[,key=None][,reverse=False])

iterable 表示可迭代对象,在这里就是列表名
参数 key 和 reverse 的用法与 sort() 方法中的相同


二、元组

2.1 元组的基本操作

元组(tuple):与列表类似,不同之处在于不能修改元组的元素,元组使用圆括号包含元素,而列表使用方括号包含元素。

创建元组:只需要在圆括号中添加元素,并使用逗号分隔元素即可,也可省略圆括号,直接使用逗号分隔元素。

python 复制代码
>>>x=('a', 'b', 1, 2,3)	#创建元组x
>>>x			#输出x
('a', 'b', 1, 2,3)
>>>y='a','b','c','d'		#创建元组y时省略了圆括号
>>>y			#输出y
('a','b','c','d')

注意事项:

(1)如果要定义一个空元组,可以用没有包含内容的圆括号来表示。

(2)Python在定义只有1个元素的元组时,在元素后面必须加一个逗号","。

2.1.1 合并元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。

python 复制代码
>>>x = (1, 2, 3)					#创建元组x
>>>y = ('a', 'b')					#创建元组y
>>>z = x + y					#将元组x和y进行连接组合后赋给z
>>>z						#输出z
(1, 2, 3, 'a', 'b')

2.1.2 元组的遍历

略,与列表相同......

2.2 元组的内置函数

Python提供的元组内置函数有len()、max()、min()和tuple()。

tuple()函数的功能是以一个序列为参数,并把它转换为元组,如果参数本身是元组,则原样返回该参数。

python 复制代码
>>>tuple([1,2,3])					#将列表转换为元组
(1, 2, 3)
>>>tuple('abc')					#将字符串转换为元组
('a', 'b', 'c')
>>>tuple((1,2,3))					#参数为元组
(1, 2, 3)

三、案例实战

例:编写一个简易计算器,要求根据输入的数字和四则运算符号,计算运算结果并输出。

python 复制代码
operator_list = ['+','-','*','/']			#创建列表并赋值四则运算符
number_1 = float(input("请输入第一个操作数:"))	#获取第一个操作数
operator = input("请输入运算符:")		#获取运算符
number_2 = float(input("请输入第二个操作数:"))	#获取第二个操作数
#判断用户输入的运算符并进行计算,将结果赋值给变量result
if operator not in operator_list:			#输入的运算符不是四则运算符
    print("输入的运算符有误,请输入四则运算符!")	#输出提示语
else:					#输入的运算符属于四则运算符
    if operator == '+':				#运算符为"+"
        result = number_1 + number_2		#两数相加的值赋给变量result
    elif operator == '-':			#运算符为"-"
        result = number_1 - number_2		#两数相减的值赋给变量result
    elif operator == '*':			#运算符为"*"
        result = number_1 * number_2		#两数相乘的值赋给变量result
    elif operator == '/':			#运算符为"/"
        result = number_1 / number_2		#两数相除的值赋给变量result
    print(number_1,operator,number_2,"=",result)	#将两个操作数的运算结果输出

例:已知两个3行3列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵。

python 复制代码
X = [[12,7,3],[4,5,6],[7,8,9]]				#定义矩阵X
Y = [[5,8,1],[6,7,3],[4,5,9]]				#定义矩阵Y
result = [[0,0,0],[0,0,0],[0,0,0]]			#定义新矩阵
for i in range(len(X)):				#循环控制行
    for j in range(len(X[0])):				#循环控制列
        result[i][j] = X[i][j] + Y[i][j]			#计算新矩阵中的元素值
for r in result:					#遍历输出新矩阵中的元素
    print(r)
相关推荐
SDAU20052 小时前
Arduino编程CH552
c语言·开发语言·单片机
桌面运维家2 小时前
vDisk虚拟磁盘隐藏指定系统操作指南
java·开发语言
knight_9___2 小时前
RAG面试篇8
人工智能·python·面试·agent·rag
2301_796588502 小时前
Go语言如何压缩文件_Go语言gzip压缩教程【基础】
jvm·数据库·python
weixin_436777872 小时前
el-select的label没有没有反显怎么办?
开发语言·前端·javascript
m0_617881422 小时前
c++如何通过重定向rdbuf来捕获第三方库的日志输出到文件【详解】
jvm·数据库·python
wjs20242 小时前
PHP 数组
开发语言
jiayong232 小时前
第 40 课:任务详情抽屉里的编辑 / 删除联动强化
java·开发语言·前端·javascript·vue.js·学习
Greyson12 小时前
mysql查询执行过程中如何追踪耗时_使用PROFILE分析指令周期
jvm·数据库·python