字符串,列表的内置方法

1. 字符串的内置方法(熟练掌握)

  1.1 去除字符串的首尾指定字符

name = '@@@@@王五@@@@@'
# 1. strip  # 去除首尾指定字符
name1 = name.strip('@')
print(name1)
# >>>王五
# 2. rstrip # 去除末尾的指定字符
name1 = name.rstrip('@')
print(name1)
# >>>@@@@@王五
# 3. lstrip # 去除开头的指定字符
name1 = name.lstrip('@')
print(name1)
# >>>王五@@@@@

  

  1.2 大小写相关操作

name = 'NamE'
# 1. lower  # 将所有的英文字母变为小写
name1 = name.lower()
print(name1)
# >>>name
# 2. upper # 将所有的英文字母变为大写
name1 = name.rstrip('@')
print(name1)
# >>>NAME
# 3. islower # 判断字符串中所有的英文字母是否是纯小写 结果是布尔值
name1 = name.islower()
print(name1)
# >>>False
# 4. isupper # 判断字符串中所有的英文字母是否是纯大写 结果是布尔值
name1 = name.isupper()
print(name1)
# >>>False

 

  1.3 判断字符串的开头或者结尾是否是指定的字符

name = 'NamE'
# 1. startswith  # 断字符串的开头是否是指定的字符
print(name.startswith('N'))
# >>>True
print(name.startswith('n'))
# >>>False
# 2. endswith # 断字符串的结尾是否是指定的字符
print(name.endswith('E'))
# >>>True
print(name.endswith('e'))
# >>>False

 

  1.4 格式化输出

# 方式1 占位符:%s %d
print('my name is %s' % ('李四'))
# >>>my name is 李四
# 方式2 format方法>>>:有四种写法
# 玩法1:使用的{}占位
print('my name is {} '.format('李四'))
# >>>my name is 李四
# 玩法2:根据索引取值  可以反复使用
print('my name is {0} {0}'.format('李四'))
# >>>my name is 李四 李四
# 玩法3:根据变量名进行占位
print('my name is {name} {name}'.format(name='李四'))
# >>>my name is 李四 李四
# 玩法4:直接使用已经定义好的变量
name = '李四'
# print(f'my name is {name} {name} ')
# >>>my name is 李四 李四

 

  1.5 拼接字符串

# 1. 用+号拼接
name1 = '三月不努力'
name2 = '四月变垃圾'
print(name1 + name2)
# >>>'三月不努力四月变垃圾'
# 如果字符串很大 加号效率较低
# 2. 用join拼接
print('@'.join(name1))
# >>>'三@月@不@努@力'
print('$'.join(['jason', 'kevin', 'justin', 'tony']))
# >>>'jason$kevin$justin$tony'
'''join方法相当于是将括号内的元素进行for循环'''
l1 = [11, '三月不努力', '四月变垃圾']
print('|'.join(l1))
# >>>报错
# join的元素必须都是字符串才可以 否则报错

 

  1.6 替换字符串中指定的字符

name = 'lisi lisi lisi wangwu'
# 将lisi替换成666
print(name.replace('lisi', '666'))
# >>>666 666 666 wangwu
# 默认一次性替换所有
# 指定替换的个数
print(name.replace('lisi', '666', 2))
# >>>666 666 lisi wangwu
# 还可以通过数字控制替换的个数 从左往右

 

  1.7 判断字符串中是否是纯数字

name = '123'
name2 = 'l123'
print(name.isdigit())
# >>>True
print(name2.isdigit())
# >>>False
# 当使用isdigit时,返回True则为纯数字,返回False则不为纯数字

 

        

  

2. 字符串的内置方法(了解即可)

  2.1 查找指定字符对应的索引值

name = '12356789999999999999990'
# 1. 使用find方法进行寻找索引
print(name.find('9'))
# >>>7
# 从左往右查找 查找一个就结束
print(name.find('0', 1, 9))
# >>>-1
# -1 意思是没有 找不到 当find第二个与第三个数字则表示find查找的索引范围 第二个数字为起始位置 第三个数字为结束位置
# 2. 使用index方法进行寻找索引
print(name.index('9'))
# >>>7
# 与find方法一样是从左往右查找 查找一个就结束
print(name.find('0', 1, 9))
# >>>报错
# 当index方法在查找范围内,查找不到时,就会报错
# 因为会发生报错,所以不推荐使用

 

  2.2 使用方法来改变文本位置

name = '王五'
print(name.center(30, '-'))
# >>>--------------王五-------------- 
# 使用center方法会把字符串放到中间,左右两边用center第二位字符串进行填充,字符串一共的长度,由第一个数字决定
print(name.ljust(30, '*')) # >>>王五****************************
# 使用ljust方法会把字符串放到左边,右边用ljust第二位字符串进行填充,字符串一共的长度,由第一个数字决定
print(name.rjust(30, '$')) # >>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$王五
# 使用rjust方法会把字符串放到右边,左边用rjust第二位字符串进行填充,字符串一共的长度,由第一个数字决定
print(name.zfill(30)) # >>>0000000000000000000000000000王五
# 使用zfill方法会把字符串放到右边,左边用0进行填充,字符串一共的长度,由第一个数字决定

 

  2.3 特殊符号:斜杠与一些英文字母的组合会产生特殊的含义

print('ja\tson\nke\avin')
# >>>ja    son
# >>>kevin
# \t 为四个空格
# \n 为换行
# \a 为

# 如果想取消它们的特殊含义 可以在字符串的前面加一个字母r
print(r'ja\tson\nke\avin')
>>>ja\tson\nke\avin

  

  2.4 captalize,swapcase,title

# 1 captalize:首字母大写
message = 'hello everyone nice to meet you!'
print(message.capitalize())
# >>>Hello everyone nice to meet you!
# 2 swapcase:大小写翻转
# message1 = 'Hi girl, I want make friends with you!'
print(message1.swapcase())
# >>>hI GIRL, i WANT MAKE FRIENDS WITH YOU!
#3 title:每个单词的首字母大写
# msg = 'dear my friend i miss you very much'
print(msg.title())
# >>>Dear My Friend I Miss You Very Much

 

  

 

3. 列表内置方法

"""
list可以转换支持for循环的数据类型
    可以被for循环的数据类型
        字符串 列表 字典 元组 集合
"""
# 1.类型转换
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))
# >>>报错


# 2.常见操作
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
# 1.索引取值
print(name_list[0])
# >>>jason
print(name_list[-1])
# >>>jason

# 3.切片操作
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']

# 4.间隔
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']

# 5.统计列表中元素的个数
print(len(name_list))
# >>>5

# 6.成员运算 最小判断单位是元素不是元素里面的单个字符
print('j' in name_list)  
# >>>False
print('jason' in name_list)
# >>>True

# 7.列表添加元素的方式
# 7.1.尾部追加'单个'元素
name_list.append('小李')
print(name_list)
# >>>['jason', 'kevin', 'tony', 'tom', 'jerry', '小李']

name_list.append([11, 22, 33, 44])
print(name_list)
# >>>['jason', 'kevin', 'tony', 'tom', 'jerry', [11, 22, 33, 44]]

# 7.2.指定位置插入'单个'元素
name_list.insert(0, 123)
print(name_list)
# >>>[123, 'jason', 'kevin', 'tony', 'tom', 'jerry']

name_list.insert(2, '可不可以插个队')
print(name_list)
# >>>['jason', 'kevin', 'tony', 可不可以插个队, 'tom', 'jerry']

name_list.insert(1, [11, 22, 33])
print(name_list)
# >>>['jason', [11, 22, 33], 'kevin', 'tony', 'tom', 'jerry']

# 7.3.合并列表
name_list.extend([11, 22, 33, 44, 55])
print(name_list)
# >>>['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55]
'''extend其实可以看成是for循环+append'''

for i in [11, 22, 33, 44, 55]:
    name_list.append(i)
print(name_list)
# >>>['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55]

name_list += [11, 22, 33, 44, 55]
print(name_list)  # 加号的效率不高
# >>>['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55]

# 8.删除元素
# 8.1 通用的删除方式
del name_list[0]
print(name_list)
# >>>['kevin', 'tony', 'tom', 'jerry']
# >>>['jason', 'kevin', 'tony', 'tom', 'jerry']

# 8.2 就地删除  # 指名道姓的直接删除某个元素
print(name_list.remove('jerry'))  # None
print(name_list)
# >>>['jason', 'kevin', 'tony', 'tom']

# 8.3 延迟删除
print(name_list.pop())  # 默认是尾部弹出    jerry
print(name_list)
# >>>['jason', 'kevin', 'tony', 'tom']

print(name_list.pop(2))  # 还可以指定索引值   tony
print(name_list)
# >>>['jason', 'kevin', 'tom', 'jerry']

# 9.修改列表元素
print(id(name_list[0]))  # 2614035215215
name_list[0] = 'tank'
print(id(name_list[0]))  # 2614035215215
print(name_list)
# >>>['tank', 'kevin', 'tony', 'tom', 'jerry']

# 10.排序
index_list = [44, 77, 99, 11, 22, 33, 88, 66]
index_list.sort()  # 默认是升序
print(index_list)  
# >>>[11, 22, 33, 44, 66, 77, 88, 99]

index_list.sort(reverse=True)  # 可以修改尾降序
print(index_list) 
# >>>[99, 88, 77, 66, 44, 33, 22, 11]

# 11.翻转
index_list = [44, 77, 99, 11, 22, 33, 88, 66]
index_list.reverse()  # 前后颠倒
print(index_list)
# >>>[66, 88, 33, 22, 11, 99, 77, 44]

# 12.比较运算
index_list = [11, 22, 33]
num_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(index_list > num_list)
# >>>True
"""列表在做比较的时候 其实比的是对应索引位置上的元素"""

# 13.统计列表中某个元素出现的次数
index_list = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33, 11, 22, 11]
print(index_list.count(11))  # 统计元素11出现的次数
# >>>5

# 14. 清空列表所有元素
index_list.clear()  # 清空列表
print(index_list)
# >>>[]

 

      

 

4.可变类型与不可变类型

name = '$$$王五$$$'
name2 = name.strip('$')
print(name)
# >>>$$$王五$$$
print(name2)
# >>>王五
# 字符串本身并没有修改 是产生了新的结果

index_list = [1, 2, 3]
num_list = index_list.extend([11, 22, 33, 44, 55])
print(num_list)
# >>>None 空
print(index_list)
# >>>[1, 2, 3, 11, 22, 33, 44, 55]
# 列表是直接在其本身进行修改的

"""
可变类型与不可变类型
    可变类型     列表
        值改变 内存地址不变 修改的是本身
    不可变类型   字符串
        值改变 内存地址肯定遍 修改过程产生了新的值
如何查看变量的'内存地址'
"""
index_list = [1, 2, 3]
print(id(index_list))
# >>>2171151255215
index_list.append(123)
print(id(index_list))
# >>>2171151255215

name = '  王五  '
print(id(name))
# >>>1502669300720
res = name.strip()
print(res)
# >>>王五
print(id(name))
# >>>1502669300720

 

  

 

5. 队列与堆栈

# 队列
#     先进先出
#         如:超市排队结账 符合队列的特征
# 堆栈
#     先进后出
#         如:叠衣服 符合堆栈的特征
# 使用列表模拟出队列与堆栈的特征
    # 队列
new_list = []
# 先进
new_list.append(1)
new_list.append(2)
new_list.append(3)
# 先出
for i in new_list:
    print(i)
print(new_list.pop(0))
print(new_list.pop(0))
print(new_list.pop(0))


# 堆栈
new_list = []
# 先进
new_list.append(1)
new_list.append(2)
new_list.append(3)
# 后出
print(new_list.pop())
print(new_list.pop())
print(new_list.pop())

 

      

posted @ 2022-03-09 19:16  thrombus  阅读(44)  评论(0)    收藏  举报