nlp——python学习记录(4)

编程入门 行业动态 更新时间:2024-10-26 04:27:17

<a href=https://www.elefans.com/category/jswz/34/1768817.html style=nlp——python学习记录(4)"/>

nlp——python学习记录(4)

今天学习了python中的字符串列表元组等,实例需要稍微转一下,稍微晚了学今天,晚上要再次复盘,下面是今天的笔记。


# 字符串:带引号的内容
# 单引号
name = 'soobin'
print(type(name),name)
# 双引号
name = "soobin"
print(type(name),name)
# 三引号
str_1 = """helloya"""
print(type(str_1),str_1)
# 如果字符串本身包含单引号,使用双引号定义(类推)
# 定义 my name is 'soobin'
my_name = "my name is 'soobin'"
print(my_name)
# 字符串也可以乘上一个整数
# 字符串的输入input()和输出print() %s或者f-strings# 下标也成为索引(正数从0开始),也可以为负数(-1为最后一个字符)
my_str = 'hello'
# 下标使用:变量[下标]
print(my_str[2])  # l
# len()函数可以得到字符串的长度
print(len(my_str))
# 使用正数小标书写最后一个元素
print(my_str[len(my_str) - 1])# 切片,获取一段数据,多个数据,下标只能获得一个数据
# 语法:[起始位:结束:步长],不包含结束位
my_str = 'hello'
print(my_str[2:4:1])  # 不包含结束位!!!  ll
# step如果为1的话为默认值,可以不写
print(my_str[2:4])
# end位置不写,表示的是全长,即渠道最后一个元素
print(my_str[2:])
# start也可以省略不写,表示从第一个元素开始遍历
print(my_str[:3])
# start和end都不写,但是冒号需要写,得到和原来一样的字符串
print(my_str[:])
# 没有数据
print(my_str[3:1],'1')
# 步长可以是负数
print(my_str[3:1:-1],'2')
# 字符串的逆置(这个用得比较多)
print(my_str[::-1])
# hlo
print(my_str[::2])my_str = 'hello my baby ya'
# 字符串查找相关操作
# find() 在字符串中查找是否存在某个字符串
# 变量名.find(sub_str,start,end)
# sub_str:要在字符串中查找的内容
# 返回值:执行的结果,如果找到了就返回sub_str的位置下标,没有找到返回-1
index = my_str.find('hello')
print(index)
print(my_str.find('hello',3))  # -1
print(my_str.find('baby'))  # 9
# rfind() right find(),从后边开始查找
print(my_str.rfind('baby'))  # 9# index() 在字符串中查找是否存在某个字符串
# 跟find的区别是index没找到的话会报错
my_str = 'hello my baby ya'
print(my_str.index('hello'))  # 0
# print(my_str.index('hello',5))  # 会报错
# rindex(),从后边查找
print(my_str.rindex('baby'))# count() 统计出现的次数,参数与find一致
my_str = 'hello my baby ya'
print(my_str.count('aaa'))  # 0
print(my_str.count('hello'))  # 1# 字符串的替换.replace(old_str,new_str,count)
# old_str:要被替换的,new_str:新的,count:替换的次数
# 返回值:一个新的字符串,不会改变原来的字符串
# 默认是全部进行替换,后面指定次数才能控制
my_str = 'hello my baby baby ya'
my_str1 = my_str.replace('baby','oldbaby')
print(my_str)
print(my_str1)
my_str2 = my_str.replace('baby','oldbaby',1)
my_str3 = my_str.replace('baby','oldbaby',2)
print(my_str3)
print(my_str2)# split(),切割,分隔切片,得到的是一个列表
# split(sub_str,count) 将字符串按照sub_str的内容进行切割count次,默认是全部切割
# 返回值是一个列表[]
# 默认切割是空白字符,空格,tab键
my_str = 'hello my baby baby ya'
print(my_str.split())  # ['hello', 'my', 'baby', 'baby', 'ya']
print(my_str.split('baby'))
print(my_str.split('baby',1))  # 切割一次
print(my_str.rsplit('baby',1))  # 从后边开始切割一次# 字符串的连接诶join(str,可迭代对象)
# 可迭代对象可以是str,列表(需要列表中的每一个数据都是字符串类型
# 将原字符串添加到可迭代对象的两个元素之间
# 返回值:一个新的字符串
my_str = '_'.join('hello')
print(my_str)
# 定义列表
my_list = ['hello','my','baby']
print('_'.join(my_list))
print(' '.join(my_list))# 字符串的常用操作
# capitalize(),将首字母变成大写
my_str = 'hello my baby baby ya'
print(my_str.capitalize())
# title(),将每个单词的首字母变成大写
print(my_str.title())
# upper(),所有字母变成大写
print(my_str.upper())
# lower(),将所有字母变成小写
print(my_str.lower())
# islower(),是不是全部为小写
print(my_str.islower())
# startswith(),是不是以某字母开头
print(my_str.startswith('u'))
# center(长度),中对齐,ljust(),左对齐,rjust(),右对齐
# lstrip()去掉左边的空格,rstrip()去掉右边的空格,strip(),去掉所有的空格,除了中间的
# 想要去掉中间的空格,使用replace将' '替换成''# 列表 是一种数据类型,可以存放多个数据,列表中的数据可以是任意类型的
# list,使用[]进行定义
# 定义空列表
my_list = []
print(my_list,type(my_list))
my_list1 = list()
print(my_list1,type(my_list1))# 定义带数据的列表,数据元素之间用都好隔开
my_list2 = [1,3.14,'nihao']
print(my_list2)
# 求列表中的元素个数,即长度
num = len(my_list2)
print(num)
# 列表支持下标和切片操作
print(my_list2[1])
print(my_list2[1:3])  # [3.14, 'nihao']
# 字符串不饿能使用下标修改其中的数据,但是列表可以使用下标修改列表中的数据
my_list2[0] = 18
print(my_list2)
my_list2[-1] = 'xixi'
print(my_list2)# 列表的遍历
# for和while
my_list2 = [1,3.14,'nihao']
for i in my_list2:print(i)
print('*******')
j = 0
while j < len(my_list2):print(my_list2[j])j += 1my_list2 = [1,3.14,'nihao']
print(my_list2)
# 列表的相关操作
# 向列表中添加对数据的方法,都是直接在列表中进行添加,不会返回新的列表
# 添加元素:append(),insert(),extend()# append(数据) 向列表尾部添加数据
my_list2.append('aa')
result = my_list2.append(12)  # 返回NONE,不要这样子写
print(result)
print(my_list2)# insert(下标,数据), 在指定的下标位置添加数据
my_list2.insert(0,'nihao')
print(my_list2)
my_list2.insert(6,333)  # 不能直接print,会返回none
print(my_list2)# extend(可迭代对象) 会将可迭代对象数据逐个添加到列表末尾
my_list2.extend('hel')
print(my_list2)
my_list2.extend([1,'pui',5])
print(my_list2)my_list2 = [1,3.14,'nihao',1]
# 列表查询操作
# index() 根据数据值查找元素所在的下标,返回下标,找不到则报错
# 列表没有find只有index()方法
num = my_list2.index(3.14)
print(num)
# num1 = my_list2.insert(100)
# print(num1)  # 报错# count()
num3 = my_list2.count(1)
print(num3)# in/not in 判断是否存在,返回布尔,一般和if结合使用
num4 = 3.14 in my_list2
print(num4)
num5 = 3.14 not in my_list2
print(num5)my_list = [1,2,3,4,5,8,9]
# 列表删除元素
# del 列表[下标],删除不存在的下标就会报错
del my_list[5]
print(my_list)# pop(下标),默认删除最后一个数据,返回闪回的内容
# 如果下标不存在,则会报错
num = my_list.pop()
print(num)
print(my_list)
num1 = my_list.pop(2)
print(num1)
print(my_list)# remove(),根据元素的数据值删除
my_list.remove(4)
print(my_list)
# my_list.remove(4)报错,因为数据不存在# 列表排序和逆置
# 想要对列表中的数据进行排序,前提是列表中的数据类型是一样的
my_list = [1,5,8,7,3,4,9]
# 列表.sort()直接在源列表中进行排序
my_list.sort()  # 默认是从小到大
print(my_list)
my_list.sort(reverse=True)  # 从大到小
print(my_list)
# 补充:sorted(列表),不会在原列表中排序,会的到一个新的列表
my_list1 = sorted(my_list)
print(my_list1)
my_list1 = sorted(my_list,reverse=True)  # 从大到小
print(my_list1)my_list = ['a','b','c','d']
print(my_list)
# 逆置
my_list1 = my_list[::-1]  # 得到的是一个新的列表
print(my_list1)
# 在原列表进行逆置,使用reverse()
my_list.reverse()
print(my_list)# 列表的嵌套,类似while循环嵌套
school_names = [['北京','清华'],['南京','东莞'],['山东','海洋']]
print(school_names[1])  # ['南京', '东莞']
print(school_names[1][1])  # 东莞
print(school_names[1][1][1])  # 莞for schools in school_names:print(schools) #列表for name in schools:print(name)# 应用:一个学校,有3个办公室,现在有8个老师等待分配工位,完成随机分配
# (抓阄),for遍历老师列表,产生随机数,根据随机数,进入对应的办公室
import random
teachers = ['a','b','c','d','e','f','g','h']  # 八个老师
offices =[[],[],[]]  # 三个办公室,对应的小标是0,1,2
# 遍历老师列表
for teacher in teachers:# 抓阄,生成随机数num = random.randint(0,2)  # 包含结束数,相当于办公室的下标# 老师进入办公室,将老师名字添加到办公室列表中offices[num].append(teacher)
print(offices)
for office in offices:print(f'该办公室老师的个数为{len(office)},办公室老师的名字为:')for teacher in office:print(teacher,end=' ')print()# 元组(tuple),与列表类似,都可以存放不同的数据类型,
# 列表使用[]定义,元组使用()定义
# 列表中的数据可以需修改,元组的元素不能进行修改。
my_list = [18,3.14,'a']
my_list1 = (18,3.14,'a')
print(my_list,type(my_list))  # <class 'list'>
print(my_list1,type(my_list1))  # <class 'tuple'>
# 元组支持下标和切片操作
print(my_list1[1])
# 定义空元组
my_tuple = ()
my_tuple2 = tuple()
# 定义一个数据元素的元组
my_tuple3 = (3)  # 不是元组<class 'int'>
print(type(my_tuple3))
my_tuple4 = (3,)  # 一定要有个逗号,<class 'tuple'>
print(type(my_tuple4))

上面代码关于分配办公室的题目建议多写两遍,下面是测试题:

# 1.使用变量存放以下的字符串:  鲁迅说:”我没有说过这句话“
# str_1 = '''鲁迅说:"我没有说过这句话"'''
# print(str_1)
'''
# 2.提示用户依次输入姓名,年龄,爱好,输入完成后将数据一次性展示出来
name = input('请输入姓名:')
age = input('请输入年龄:')
hobby = input('请输入你的爱好:')
print(f'姓名是:{name},年龄是:{age},爱好是:{hobby}')# 3.切片提取出ceg
word = "abcdefghi"
print(word[2:7:2])# 5.1判断单词great是否在words中
# 如果在,则在great后面加一个s,不在的话则输出great不在该字符串中
# 5.2将整个字符串的每个单词都变成小写,并使每个单词的首字母变成大写
# 5.3去除首尾的空白,并输出处理过的字符串
words = "great Cade great Catro,But great cahu carey great catrs"
if 'great' in words:words = words.replace('great','greats')words = words.lower()  # 小写words = words.title()  # 首字母大写words = words.strip()  # 去除首尾空白print(words)
else:print('great不在该字符串中')# 列表:
# 判断列表中的每个元素是否以s或e结尾,如果是,将其放入新列表,最后输出新列表
list1 = ['red','apples','orange','pink','bananas','blue','black','white']
new_l = []
for i in list1:if i[-1] == 's' or i[-1] == 'e':new_l.append(i)
print(new_l)# 给定一个列表,首先删除以s开头的元素,删除后,
# 修改第一个元素为joke,并且把最后一个元素复制一份,放到joke的后面
my_list = ['spring','look','strange','black','hope']
for i in my_list:if i[0] == 's':my_list.remove(i)
my_list[0] = 'joke'  # 获取第一个元素
last = my_list[-1]  # 复制最后一个元素
my_list.insert(1,last)  # 将其插入到joke后面
print(my_list)
'''# 列表合并,去重降序输出,使用extend()
list1 = [11,4,45,34,51,97]
list2 = [4,16,23,51,0]
# 合并
my_list = list1 + list2
# 定义新的列表保存去重后的数据
new_list = []
# 遍历合并后的列表:
# 去重
for i in my_list:if i in new_list:continueelse:new_list.append(i)
# 排序,降序
new_list.sort(reverse=True)
print(new_list)tuple1 = (2)  # int
tuple2 = (2,)  # 元组# 使用下标方法,输出元组元素”CPP“
# for,while
my_tuple = ('list','python','CPP',18)
print(my_tuple[2])
print('*'*5)
for i in my_tuple:print(i)
print('**'*6)
i = 0
while i < len(my_tuple):print(my_tuple[i])i += 1

需要复盘的是合并去重降序的题目,做完运动再来复盘啦!

更多推荐

nlp——python学习记录(4)

本文发布于:2024-02-11 10:59:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1680629.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:nlp   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!