Python-爬虫基础三(数据类型-高级)
一、字符串的常见操作包括:
len | 获取字符串的长度 |
find | 查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,不存在则返回-1 |
startswith,endswith | 判断字符串是不是以xxx开头,结尾 |
count | 计算出现次数 |
replace | 替换字符串中指定的内容,如果指定次数count,则替换不会唱过count次 |
split | 通过参数的内容切割字符串 |
upper,lower | 将字符串中的大小写互换 |
strip | 去空格 |
join | 字符串拼接 |
name = 'LuckInAaron' # - 获取长度:len --获取name的长度 print(len(name)) #》》11 # - 查找内容:find --查找n出现在第几位(从0开始计) print(name.find('n')) #》》5 # - 判断:startswith,endswith ##判断是否以A开头 print(name.startswith('A')) #》》False ##判断是否以n结尾 print(name.endswith('n')) #》》True # - 计算出现次数:count --统计n的出现次数 print(name.count('n')) #》》2 # - 替换内容:replace --将小写n替换为V print(name.replace('n','V')) #》》LuckIVAaroV # - 切割字符串:split 将字符串中 In 切除 print(name.split('In')) #》》['Luck', 'Aaron'] # - 修改大小写:upper,lower ##将小写字符转为大写 upper print(name.upper()) #》》LUCKINAARON ##将大写字符转换为小写 lower print(name.lower()) #》》luckinaaron # - 空格处理:strip #此处s前后各3个空格 b =' s ' print(len(b)) #》》7 #去除空格后长度为1 print(len(b.strip())) #》》1 # - 字符串拼接:join s = 'a' print(s.join('hello')) #》》haealalao
二、列表高级
列表的增删改查
添加元素
增加元素有以下几个方法:
- append 在末尾添加元素
- insert 在指定位置插入元素
- extend 合并两个列表
course_list = ['语文','数学','英语'] print(course_list) #》》['语文', '数学', '英语'] ## append 在末尾加入历史 course_list.append('历史') print(course_list) #》》['语文', '数学', '英语', '历史'] ## insert index的值就是你想插入数据的那个下标,此处0是最前面 course_list.insert(0,'化学') print(course_list) #》》['化学', '语文', '数学', '英语', '历史'] ## extend 追加 num_list = ['1','2','3'] num_list.extend(course_list) print(num_list) #》》['1', '2', '3', '化学', '语文', '数学', '英语', '历史']
修改元素
city_list = ['北京','上海','广州'] print(city_list) #》》['北京', '上海', '广州'] # 将列表中的元素的值修改 # 可以通过下标来修改,注意列表中的下标是从0开始的 city_list[2] = '大连' print(city_list) #》》['北京', '上海', '大连']
查找元素
查看指定的元素是否存在,包含方法有:
- in 存在,如果存在那么结果为True,否则为False
- not in 不存在,如果不存在那么结果为True,否则为False
##通常配合 if 使用
## in city_list = ['北京','上海','广州'] ## in 判断以下控制台输入的数据是否在列表中 city = input('请输入城市名:') if city in city_list: print('在') else: print('不在')
## not in
city_list = ['北京','上海','广州'] ## not in 判断以下控制台输入的数据是否在列表中 city = input('请输入城市名:') if city not in city_list: print('不在') else: print('在')
删除元素
列表元素的常用删除元素有:
- del 根据下标进行删除
- pop 删除最后一个元素
- remove 根据元素的值进行删除
del
city_list = ['北京','上海','广州']
##删除下标0 del city_list[0] print(city_list)
>>['上海', '广州']
pop
city_list = ['北京','上海','广州'] ##默认删除最后一个元素广州 city_list.pop() print(city_list) >>['北京', '上海']
remove
city_list = ['北京','上海','广州'] ##指定删除元素 这里删除上海 city_list.remove('上海') print(city_list) >>['北京', '广州']
三、元组高级
Python的元组与列表类似,不同的是'元组的元素不能修改',元组使用小括号,列表使用方括号
# 元组不可以修改里面的内容 # 列表中的元素是可以修改的 而元组中的元素是不可以被修改 a_tuple = (5) print(type(a_tuple))
>><class 'int'> ##这里是int类型 # # 当元组中只要一个元素的时候 那么他是整型数据 # # 定义只有一个元素的元组,需要在唯一的元素后写一个逗号 b_tuple = (5,) print(type(b_tuple))
>><class 'tuple'>
四、切片
切片是指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片
切片的语法:[起始:结束:步长] 也可以简化使用 [起始:结束]
注意:选取的区间从‘起始’位开始,到‘结束’位的前一位结束(不包含结束位本身),步长表示选取间隔。
s ='hello world' # 在切片中直接写一个下标 print(s[0]) #>>h # 左闭右开区间 包含坐标的数据 不包含右边的数据 print(s[0:4]) #>>hell # 是从起始的值开始 一直到末尾 print(s[1:]) #>>ello world # 是下标为0的索引的元素开始 一直到第二参数为止 遵循左闭右开区间 print(s[:4]) #>>hell # 从下标为0的位置开始 到下标为6的位置结束 每次增长2个长度 print(s[0:6:2]) #>>hlo
五、字典高级
查看元素
除了使用key查找数据,还可以使用get来获取数据
# 定义一个字典 person = {'name':'aaron','age':25} #访问person的name print(person['name']) #>>aaron # 使用[]的方式,获取字典中不存在的key的时候 会发生异常 keyerror print(person['sex']) #>>KeyError: 'sex' # 不能使用.的方式来访问字典的数据 # 使用.的方式,获取字典中不存在的key的时候 会返回None值 print(person.get('age')) #>>25 print(person.get('sex')) #>>None
修改元素
字典的每个元素中的数据是可以修改的,只要通过key找到即可修改
# 定义一个字典 person = {'name':'aaron','age':25} # 修改之前的字典 print(person) #>>{'name': 'aaron', 'age': 25} # 修改name的值为Lucky 注意使用 [''] person['name'] = 'Lucky' # 修改之后的字典 print(person) #>>{'name': 'Lucky', 'age': 25}
添加元素
# 定义一个字典 person = {'name':'aaron','age':25} # 添加一个新的key value 性别 男 #如果使用变量名字['键'] = 数据时 这个键如果在字典中不存在 那么就会变成新增元素 person['gender'] = '男' print(person) #>>{'name': 'aaron', 'age': 25, 'gender': '男'} # 如果这个键在字典中存在 那么就会修改这个元素 person['name'] = 'lucky' print(person) #>>{'name': 'lucky', 'age': 25, 'gender': '男'}
删除元素
- del
# (1) 删除字典中指定的某一个元素 person = {'name':'aaron','age':25} # 删除之前 print(person) #>>{'name': 'aaron', 'age': 25} ##删除 age del person['age'] # 删除之后 print(person) #>>{'name': 'aaron'}
# (2) 删除整个字典
del person
print(person)
#>>NameError: name 'person' is not defined 这里因为person已经被删除了,所以报错不打印
- clear 清空字典 但是保留字典对象
# 清空指的是将字典中所有的数据 都删除掉 而保留字典的结构 person = {'name':'aaron','age':25} person.clear() print(person) #>>{}
###只保留了大括号
遍历
person = {'name':'aaron','age':25} # (1) 遍历字典的key # 字典.keys() 方法 获取的字典中所有的key值 key是一个变量的名字 我们可以随便起 for key in person.keys(): print(key) #>>name #>>age
# (2) 遍历字典的value
# 字典.values()方法 获取字典中所有的value值 value也是一个变量 我们可以随便命名
for value in person.values():
print(value)
#>>aaron
#>>25
# (3) 遍历字典的key和value
for key,value in person.items():
print(key,value)
#>>name aaron
#>>age 25
# (4) 遍历字典的项/元素
for item in person.items():
print(item)
#>>('name', 'aaron')
#>>('age', 25)