zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python爬虫-数据类型高级

Python爬虫 高级 数据类型
2023-09-11 14:17:08 时间

数据类型高级

字符串高级

字符串的常见操作包括:

  • 获取长度-len-len函数可以获取字符串的长度
a = 'hello'
print(len(a))
  • 查找内容-find-查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置的索引值,如果不存在,则返回-1
a1 = 'hello'
print(a1.find('e')) # //1    print(a1.find('p')) // -1
  • 判断-startswith,endswith-判断字符串是不是以谁谁谁开头/结尾
a2 = 'hello'
print(a2.startswith('h')) # True 否则返回False
print(a2.endswith('o')) # True 否则返回False
  • 计算出现次数-count-返回str在start和end之间 在mystr里面出现的次数
a3 = 'hello'
print(a3.count('l')) # 两次
  • 替换内容-replace-替换字符串中指定的内容,如果指定次数count,则替换不会超过count
a4 = 'xxddd'
print(a4.replace('x','n')) # nnddd
  • 切割字符串-split-通过参数的内容切割字符串
a5 = '1@2@3@4'
print(a5.split('@')) # ['1', '2', '3', '4']
  • 修改大小写-upper,lower-将字符串中的大小写互相转换
a6 = 'hElLo'
print(a6.upper()) # 将所有的小写字母变成大写字母 HELLO
print(a6.lower()) # 将所有的大写字母变成小写字母 hello
  • 空格处理-strip-去空格
a7 = '   a   '
print(len(a7)) # 7
print(len(a7.strip())) # 1
  • 字符串拼接-join-字符串拼接
a8 = 'a'
print(a8.join('hello')) # haealalao

列表高级(列表的增删改查)

添加元素

  • append-在末尾添加元素
str_list = ['a','b','c']
str_list.append('d') # 将d加入到列表最后
print(str_list) # ['a', 'b', 'c', 'd']
  • insert 在指定位置插入元素
num_list = ['1','3','4']
num_list.insert(1,'2') # 在下标为1的地方插入‘2’
print(num_list) # ['1', '2', '3', '4']
  • extend-合并两个列表
sec_list = ['web','pwn','md5']
sec1_list = ['ctf','hw','zb']
sec_list.extend(sec1_list) # 将sec_list的数据一个一个加入到列表sec_list后面
print(sec_list) # ['web', 'pwn', 'md5', 'ctf', 'hw', 'zb']

修改元素

  • 通过指定下标来访问列表元素,修改列表时,为列表的下标赋值
city_list = ['北京','天津''石家庄','济南']
# 将列表中的元素值修改
# 可以通过修改下标

查找元素

  • 所谓查找,就是看指定元素是否存在
# in 是否在列表中
num0_list = [1,2,3,4,5]
# 判断一下在控制台输入的那个数据是否在列表中
num = int(input('请输入你想要的数字'))
if num in num0_list :
    print('在')
else:
    print('不在')
# not in 是否不在列表中
game_list=['gta5','pbug']
# 在控制台输入游戏,然后判断是否不在
game = input('请输入游戏')
if game not in game_list :
  print('不在')
else :
  print('在')

删除元素

列表中常用的删除方法有

# del 根据下标来删除
q_list = [1,2,3,4,5]
del q_list[2]
print(q_list) # ['1', '2', '4', '5']
#  pop 删除最后一个元素
w_list = [2,4,6,9]
w_list.pop()
print(w_list) # ['2', '4', '6']
# remove 删除指定元素的值
e_list = [1,2,3,4]
e_list.remove(3)
print(e_list) # [1, 2, 4]

元组高级

Python的元组与列表类似,不同之处在于-元组的元素不能修改-,元组使用小括号,列表使用方括号

访问元组

a_tuple = (2,3,4,5)
print(a_tuple[2]) # 4
print(a_tuple) # (2,3,4,5)

修改元组(不可以被修改)

b_tuple = (2,3,4,5)
# 修改 会报错
b_tuple[2] = 5 # TypeError: 'tuple' object does not support item assignment
print(b_tuple)

创建数组

c_tuple = (2)
print(type(c_tuple)) # <class 'int'>
# 只有一个数组后面需要加逗号
d_tuple = (2,)
print(type(d_tuple)) # <class 'tuple'>

切片

  • 切片是指对操作的对象截取其中一部分的操作。字符串,列表,元组都支持切片操作
  • 切片语法:[起始:结束:步长],也可以简化是使用[起始:结束]
  • 注意:选取的区间是从“起始位置“开始到前一个结束的位置
# 在切片中直接写下标来访问元素
b = 'china'
print(b[3]) # n
# 左闭右开区间 包含坐标左边的数据,不包含右边的数据
print(b[0:4]) # chin
# 从起始值开始 一直到最后
print(b[1:]) # hina
# 从下标为0的索引的元素开始 一直到第二个参数为止 遵循左闭右开区间
print(b[:3]) # chi
# 从下标为0的位置的开始,到下标为3的位置结束 ,每次增加2个长度
print(b[0:3:2]) # ci

字典的高级

查询

china = {'hebei':'sjz','shandong':'jinan'}
# 查询方法一
print(china['hebei']) # sjz
# 使用[]方法 获取不存在的key的时候 会报错  KeyError: 'ss'
print(china['ss'])
# 查询方法二
print(china.get('shandong')) # jinan
# 使用get方法时候 获取不存在的 会返回None
print(china.get('sd'))

修改

city = {'shandong':'qingdao','hebei':'shijiazhuang'}
# 修改之前
print(city) #{'shandong': 'qingdao', 'hebei': 'shijiazhuang'}
# 修改 shandong的值
city['shandong'] = 'jinan'
#修改之后
print(city) # {'shandong': 'jinan', 'hebei': 'shijiazhuang'}

添加

city = {'hebei':'shijiazhuang'}
# 添加前
print(city) # {'hebei': 'shijiazhuang'}
# 给字典添加一个 key value
# 如果使用变量的名字['键'] = 数据时 这个键如果在字典中不存在 那么就会变成新增元素
city['shandong'] = 'jinan'
print(city)  # {'hebei': 'shijiazhuang', 'shandong': 'jinan'}
# 如果这个键在字典中存在 那么就会变成修改元素
city['hebei'] = 'tangshan' 
print(city) # {'hebei': 'tangshan', 'shandong': 'jinan'}

删除

del
  • 删除字典中指定的某一个元素
city = {'shandong':'qingdao','hebei':'shijiazhuang'}
# 删除前
print(city) # {'shandong': 'qingdao', 'hebei': 'shijiazhuang'}
# 删除元素
del city['shandong']
# 删除之后
print(city) # {'hebei': 'shijiazhuang'}
  • 删除整个字典
city = {'shandong':'qingdao','hebei':'shijiazhuang'}
# 删除前
print(city) # {'shandong': 'qingdao', 'hebei': 'shijiazhuang'}
# 删除整个字典
del city
# 删除之后
print(city)  # NameError: name 'city' is not defined
clear
  • 清空字典 但是保留字典对象
# 清空指的是将字典中所有的数据 都删除掉 保留字典的结构
city = {'shandong':'qingdao','hebei':'shijiazhuang'}
# 删除前
print(city) # {'shandong': 'qingdao', 'hebei': 'shijiazhuang'}
# 清空字典
city.clear()
# 删除后
print(city) # {}

遍历

遍历就是一个一个输出
  • 遍历字典中的key
city = {'shandong':'qingdao','hebei':'shijiazhuang'}
# 字典.keys()方法 获取字典中的所有的key值 key是一个变量的名字 可以随便写
for key in city.keys():
  print(key) # shandong  hebei
  • 遍历字典中的value
city = {'shandong':'qingdao','hebei':'shijiazhuang'}
# 字典.values() 获取字典中的所有的value值 value是一个变量的名字 可以随便写
for value in city.values() :
  print(value)
  • 遍历字典的value和key
city = {'shandong':'qingdao','hebei':'shijiazhuang'}

for key,value in city.items() :
  print(key,value) #shandong qingdao hebei shijiazhuang
  • 遍历字典的项/元素
city = {'shandong':'qingdao','hebei':'shijiazhuang'}

for item in city.items() :
  print(item) #('shandong', 'qingdao') ('hebei', 'shijiazhuang')