一、字符串切片 slice
my_str[start : end : step]
my_name = 'HuaiXia'# 省略end,表示截取到最后print(my_name[1:])# 省略start,从最开始的地方截取print(my_name[:5])# 省略start和end,相当于复制copyprint(my_name[:]) name_copy = my_name[:]print(name_copy)
打印结果:
uaiXia
HuaiX
HuaiXia
HuaiXia
TODO:面试题——倒序写一个字符串
print(my_name[::-1])
二、字符串常用方法
-join -find -count -replace -split -format -f'' ''
1. 拼接join
'分隔符'.join('需要分隔的字符')
# 打印结果为 2020/08/06print('/'.join(['2020', '08', '06']))# 打印结果为 2020/08/06 22:23:54date = ['2020', '08', '06']time = ['22', '08', '06']print('/'.join(date) + ' ' + ':'.join(time))# 把一个字符串每一个字符都分割my_str = 'my name is HuaiXia'print('.'.join(my_str))
打印结果:
2020/08/06
2020/08/06 22:08:06
m.y. .n.a.m.e. .i.s. .H.u.a.i.X.i.a
2. 查找元素位置find≈index
变量名.find('查找的元素')
my_words = 'HuaiXia is wonderful'print(my_words.find('H'))print(my_words.index('H'))
打印结果:【为索引值】
0
0
若查找的元素在string中出现了2次及以上,只返回第一次出现的索引值
print(my_words.find('a'))
打印结果:
2
若查找的是一个子串,则返回的是该字符串作为一个整体在string中出现的索引值
print(my_words.find('ai'))
打印结果:
2
若查找的子串或字符不存在,则find查找返回的是-1,index查找返回的是报错
print(my_words.find('ag'))print(my_words.index('ag'))
打印结果:
-1
ValueError: substring not found
3. 统计次数count
变量名.count('统计次数的元素')
my_words = 'HuaiXia is Wonderful'print(my_words.count('a'))
打印结果:2
4. 替换replace
变量名.replace('旧值','新值')
my_words = 'HuaiXia is Wonderful'print(my_words.replace('Wonderful', 'Excellent'))
打印结果:HuaiXia is Excellent
5. 切分split
变量名.split('切分符号')
time = '2020/08/06'print(time.split('/'))print(time.split('0'))
打印结果
['2020', '08', '06']
['2', '2', '/', '8/', '6']
6. 大写upper/小写lower
变量名.upper()
变量名.lower()
my_words = 'HuaiXia is Wonderful'print(my_words.upper())print(my_words.lower())
打印结果:
HUAIXIA IS WONDERFUL
huaixia is wonderful
7. 去掉字符串两侧的特殊字符strip
变量名.strip(’想去掉的特殊字符‘)
变量名.strip() #去掉两侧的空格/换行
my_words = ' HuaiXia is Wonderful'
print(my_words.strip())
print(my_words.strip('l'))
HuaiXia is Wonderful
`HuaiXia is Wonderfu
如果什么值都不传,则去掉两侧空格/换行符
如果传了特定的字符,则去掉两侧的特定字符,若仅一侧有传的字符,也照常去除该字符。
8. 字符串的格式化format ★★★★★
位置一定要匹配,不能乱填顺序
# {}表示占位符,占坑符
print("""
借款人:{}
债权人:{}
金额:{}万
""".format(loan_name, rich_man, money))
f-string: python3.6以后才支持使用
print(f"""
借款人:{loan_name}
债权人:{rich_man}
金额:{money}万
""")
9. 字符长度len
my_words = ' HuaiXia is Wonderful'
print(len(my_words))
打印结果:21
三、列表
1. 列表定义
一种数据类型,可以存储多个数据的数据类型。
使用[]表示列表
列表元素可以是python中的任意数据类型,string / float / int / tuple / bool / list / dict / set
2. 常用操作
索引
和string一致
my_lst = ['HuaiXia', 'beautiful', ['wonderful', 'excellent']]
print(my_lst[-1])
print(my_lst[-1][-1]) # 嵌套列表的元素获取
打印结果:
['wonderful', 'excellent']
excellent
切片
和string一致
my_lst = ['HuaiXia', 'beautiful', ['wonderful', 'excellent']]
print(my_lst[1:])
打印结果:beautiful, ['wonderful', 'excellent']
修改元素值
list有增删改查,string只有查
list的添加 append / insert / extend
- append 修改的是原来的变量,添加多个元素时 整体加入 添加在最后
lst = ['yuz', 'HuaiXia', 'shangshan']
lst.append('pl')
print(lst)
打印结果:['yuz', 'HuaiXia', 'shangshan', 'pl']
lst = ['yuz', 'HuaiXia', 'shangshan']
lst.append(['kobe', 'comeon'])
print(lst)
打印结果:['yuz', 'HuaiXia', 'shangshan', ['kobe', 'comeon']]
- insert(索引值,'需要添加的字符') 指定索引值,其他元素整体往后移
lst = ['yuz', 'HuaiXia', 'shangshan']
lst.insert(1, 'kobe')
print(lst)
打印结果:['yuz', 'kobe', 'rita', 'shangshan']
- extend 添加多个元素 分开加入 在最后加入
lst = ['yuz', 'HuaiXia', 'shangshan']
lst.extend(['kobe', 'comeon'])
print(lst)
打印结果:['yuz', 'HuaiXia', 'shangshan', 'kobe', 'comeon']