day 7
day 7
字符串的其他内置方法
-
移除字符串首尾的指定字符,可以选择方向
s1 = '$$$jason$$$' print(s1.strip('$')) print(s1.lstrip('$')) print(s1.rstrip('$'))
-
大小写相关操作
s2 = 'JAHSKDsldjasl' print(s2.lower()) #将所有的英文变为小写 print(s2.upper()) #将所有的英文字母变为大写 print(s2.islower()) #判断字符串中所有的英文字母是否纯小写,结构是布尔值 print(s2.isupper()) #判断字符串中所有的英文字母是否纯大写,结果是布尔值
-
判断字符串的开头或者结尾是否是指定的字符
s3 = 'jason kevin jason tony 666' print(s3.startswith('j')) # True print(s3.startswit('jason')) # True print(s3.endswith('6')) # True print(s3.endswith('jason')) # False
-
格式化输出
方式1: 占位符 %s %d
方式2: format方法 有三种用法
用法1:和占位符一致,使用{ }占位
print('my name is {} my age is {}'.format('jason','18'))
用法2:根据索引取值,可以反复使用
print('my name is {0} {0} my age is {0}{1}'.format('jason',18))
用法3: 根据指名道姓的方式取值
print('my name is {name} {name} my age is {age} {pwd}'.format(name='jason',age=18,pwd=123))
用法4: 直接使用已经出现过的变量
name = 'jason' age = 18 print(f'my name is {name} my age is {age}')
-
拼接字符串
s1 = '三月不努力 四月变垃圾' s2 = '年少不努力 妄为少年人' print(s1 + s2) # 如果字符串很大 加号效率较低 print(s1 * 10) # 重复次数 print('|'.join(s1)) # 三|月|不|努|力| |四|月|变|垃|圾 print('$'.join(['jason', 'kevin', 'justin', 'tony'])) # jason$kevin$justin$tony l1 = [11, 'jason', 'kevin'] print('|'.join(l1)) # join的元素必须都是字符串才可以 否则报错
-
替换字符串中指定的字符
s6 = 'jason is DSB DSB DSB DSB jason jason jason' # 将Jason替换成老刘 print(s6.replace('jason', '老刘')) # 默认一次性替换所有 # 指定替换的个数 print(s6.replace('jason', '老刘', 2)) #还可以通过数字控制替换的个数,从左往右
-
判断字符串中是否是纯数字
s7 = 'jason123' print(s7.isdigit()) # False print('123'.isdigit()) # True print('123.21'.isdigit()) # False
-
了解的操作
# 1.查找指定字符对应得索引值 s1 = 'jason justin kevin tony' print(s1.find('s')) # 从左往右查找 查找一个就结束 print(s1.find('k', 1, 9)) # -1 意思是没有 找不到 print(s1.index('s')) print(s1.index('k', 1, 9)) # 找不到直接报错 不推荐使用 # 2.文本为止得改变 name = 'tony' print(name.center(30,'-')) # -------------tony------------- print(name.ljust(30, '*')) # tony************************** print(name.rjust(30, '$')) # $$$$$$$$$$$$$$$$$$$$$$$$$$tony print(name.zfill(50)) # zero 零 0000000000000000000000000000000000000000000000tony # 3. 特殊符号:斜杠与一些英文字母的组合会产生特殊的含义 print('ja\tson\nke\avin') # 如果想要取消他们的特殊含义,可以在字符串的前面加一个字母r print(r'ja\tson\nke\avin') # 4.captalize,swapcase,title # captalize:首字母大写 message = 'hello everyone nice to meet you!' message.capitalize() # swapcase:大小写翻转 message1 = 'Hi girl, I want make friends with you!' message1.swapcase() # title:每个单词的首字母大写 msg = 'dear my friend i miss you very much' msg.title()
列表内置方法
-
类型转换
print(list(11)) # 不行 print(list(11.11)) # 不行 print(list('jason')) # ['j', 'a', 's', 'o', 'n'] print(list({'name': 'jason', 'pwd': 123})) # ['name', 'pwd'] print(list((11,22,33,44,55))) # [11, 22, 33, 44, 55] print(list({1, 2, 3, 4, 5})) # [1, 2, 3, 4, 5] print(list(True)) # 不行 '''list可以转换for循环的数据类型,可以被for循环的数据类型 字典 列表 字符串 元组 集合'''
-
索引取值
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(name_list[0]) print(name_list[-1])
-
切片操作
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(name_list[1:4]) # ['kevin', 'tony', 'tom'] print(name_list[-4:-1]) # ['kevin', 'tony', 'tom'] print(name_list[-1:-4:-1]) # ['jerry', 'tom', 'tony']
-
间隔
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(name_list[0:4:1]) # ['jason', 'kevin', 'tony', 'tom'] print(name_list[0:4:2]) # ['jason', 'tony'] print(name_list[-1:-4:-1]) # ['jerry', 'tom', 'tony']
-
统计列表中元素的个数
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(len(name_list)) # 5
-
成员运算
最小判断单位是元素不是元素里面的单个字符
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print('j' in name_list) # False print('jason' in name_list) # True
-
列表添加元素的方式
尾部追加'单个'元素
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] name_list.append('小李')
指定位置插入单个元素
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] name_list.insert(0, 123) name_list.insert(2, '可不可以插个队')
合并列表
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] name_list.extend([11, 22, 33, 44, 55]) print(name_list)
-
删除元素
通用的删除方式
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] del name_list[0] print(name_list)
就地删除
指名道姓的直接删除某个元素
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(name_list.remove('jerry'))
延迟删除
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(name_list.pop()) print(name_list.pop(2)) # 还可以索引取值
修改列表元素
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry'] print(id(name_list[0])) # 查看内存地址 name_list[0] = 'jasonDSB'
-
排序
ss = [44, 77, 99, 11, 22, 33, 88, 66] ss.sort() # 默认是升序 ss.sort(reverse=True) # 可以修改尾降序
-
翻转
ss = [44, 77, 99, 11, 22, 33, 88, 66] ss.reverse() # 前后颠倒
-
比较运算
s1 = [11, 22, 33] s2 = [1, 2, 3, 4, 5, 6, 7, 8] print(s1 > s2) s3 = ['A', 'B', 'C'] s4 = ['a'] print(s3 > s4)
-
统计列表中某个元素出现的次数
l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33] print(l1.count(11)) # 统计元素11出现的次数 l1.clear() # 清空列表
-
可变类型与不可变类型
s1 = '$$$jason$$$'
print(s1.strip('$')) # jason 本身并没有修改 是产生了新的结果
s2 = [1, 2, 3]
print(s2.extend([11, 22, 33, 44, 55]))
"""
可变类型与不可变类型
可变类型 列表
值改变 内存地址不变 修改的是本身
不可变类型 字符串
值改变 内存地址肯定遍 修改过程产生了新的值
如何查看变量的'内存地址'
"""
队列与堆栈
队列:先进先出
堆栈:先进后出
# 使用列表模拟出队列与堆栈的特征
new_list = []
# 队列
# 先进
new_list.append(111)
new_list.append(222)
new_list.append(333)
# 先出
for i in new_list:
print(new_list.pop(0))
print(new_list.pop(0))
print(new_list.pop(0))
# 堆栈
new_list = []
# 先进
new_list.append(111)
new_list.append(222)
new_list.append(333)
# 后出
print(new_list.pop())
print(new_list.pop())
print(new_list.pop())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统