python基础-学习记录day06

124 阅读4分钟

字符串操作与列表

1、字符串的常用操作方法

# 字符串序列.find(⼦串, 开始位置下标, 结束位置下标)
# var = "hello and python and hello world"
# print(var.find("and"))          # 查找到and首字母下标
# print(var.find("and", 8, 20))     # 查找到下标为8-20,and首字母下标
# print(var.find("ors"))          # 查找ors,如果没有,则返回-1
# 字符串序列.index(⼦串, 开始位置下标, 结束位置下标)
# var = "hello and python and hello world"
# print(var.index("and"))          # 查找到and首字母下标
# print(var.index("and", 8, 20))     # 查找到下标为8-20,and首字母下标
# print(var.index("ors"))          # 查找ors,如果没有,则报错
# 字符串序列.count(⼦串, 开始位置下标, 结束位置下标)
# li = [1, 2, 3, 4, 5, 6, 7, [1, 2, 3, 4, 5, 6, 7]]
# print(li.count(1))  # [1, 2, 3, 4, 5, 6, 7]
# print(li[-1].count(1))

# var = "hello and python and hello world"
# print(var.count("and"))         # 查看在字符串var中,and出现了多少次
# print(var.count("ands"))        # 如果没有,则返回0次
# print(var.count("and", 8, 20))    # 在一个区间内查找and出现的次数
# 字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
# var = "hello and python and hello world"
# newstr = var.replace("and", "和")      # 将里面所有的and替换为和
# print(newstr, id(newstr))
# print(var.replace("and", "和", 1))     # 将and替换为和,只替换一次
# 注意:替换次数如果超出⼦串出现次数,则替换次数为该⼦串出现次数。
# print(var, id(var))  # 没有改变原来的字符串的
"""
数据类型中的可变与不可变数据类型

可变的:列表 字典 集合
不可变: 数字 字符串 元组
"""
# var = "hello and python and hello world"
# print(var.split("and"))         # 以and为界,分隔开其他字符串,返回一个列表
# print(var.split(" "))         # 以空格为界,分隔开其他字符串,返回一个列表
# print(var.split("and", 1))       # 以and为界,分隔开其他字符串,只分割一次,返回一个列表
# a = '123456789'
# print(' '.join(a))  # iterable可迭代对象  字符串中的方法
# 能够从一个序列中一个一个的取出数据的 能够使用循环遍历的就肯定是一个可迭代对象

# li = ['1', '2', '3', '4', '5']
# print('_'.join(li))

# 字符或⼦串.join(多字符串组成的序列)
# list1 = ["hello", "python", "i", "love", "you"]
# t1 = ("hello", "python", "i", "love", "you")
# set1 = {"hello", "python", "i", "love", "you"}
# print("__".join(list1))     # 将列表转化为字符串,并且使用指定符号隔开
# print(",".join(t1))         # 将元组转化为字符串,并且使用指定符号隔开
# print("|".join(set1))       # 将集合转化为字符串,并且使用指定符号隔开
# var = "@hello and python@ and¥ hello world@@@@"
# print(var.strip())            # 删除两侧空格
# print(var.strip('@'))             # 删除指定的字符串 字符串左右两边的 中间是不能直接删除的
# print(var.replace('@', '').replace('¥', ''))  # 正则表达式
"""isxxxx()  自省"""

# print(r'你\n好呀')  # 特殊字符  \n \t \r . * ?  将原有的特殊字符转成普通字符

2、列表的使用

# name1 = '小明'
# name2 = '小白'
# name3 = '小花'
# name4 = '小绿'
# name5 = '小黄'
# li = [name1,name2,name3,name4,name5]

# 列表中可以存放任意数据类型
# li1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# print(li1, type(li1))
# li2 = list('123456789')  # 可迭代对象  命名变量是不要以list这个关键字作为变量名
# print(li2, type(li2))
# len()  统计长度 不管是列表还是字符串都可以统计
# print(len('123456789'))  # 可迭代对象
# print(len([1, 2, 3, 4, 5, 6, 7, 8, 9]))
# 列表示例
name_list = ['张三', '李四', '王五', '赵六']
name = input('请输⼊您要搜索的名字:')
if name in name_list:
    print(f'您输⼊的名字是{name}, 名字已经存在')
else:
    print(f'您输⼊的名字是{name}, 名字不存在')

3、访问列表中的值

# 使用索引访问列表元素的格式为:listname[i]

# name_list = ['张三', '李四', '王五', '赵六']
# print(name_list[0])
# print(name_list[1])
# print(name_list[2])

# 使用切片访问列表元素的格式为:listname[start : end : step]
name_list = ['张三', '李四', '王五', '赵六']
print(name_list[0:4:2])

4、列表的添加

# 列表序列.append(数据)
# name_list = ['张三', '李四', '王五', '赵六']
# print(name_list, id(name_list))
# name_list.append('阿坤')
# print(name_list, id(name_list))
# 列表可变,id不发生改变
# name_list = ['张三', '李四', '王五', '赵六']
# alist = ["唱", "跳", "rap", "篮球"]
# name_list.append(alist)
# print(name_list)
# ['张三', '李四', '王五', '赵六', ['唱', '跳', 'rap', '篮球']]
# alist = ["唱", "跳", "rap", "篮球"]
# name_list.extend(alist)
# print(name_list)
# 列表序列.insert(位置下标, 数据)
# name_list = ['张三', '李四', '王五', '赵六']
# name_list.insert(1, '阿坤')
# # 结果:['张三','阿坤', '李四', '王五','赵六']
# print(name_list)

5、列表的的删除

# name_list = ['张三', '李四', '王五', '赵六']
# del name_list
# print(name_list)

# name_list = ['张三', '李四', '王五', '赵六']
# del name_list[1]
# print(name_list)
# print(' '.join(name_list))
# ['张三', '王五', '赵六']
# name_list = ['张三', '李四', '王五', '赵六']
# # name_list.pop()  # 默认删除最后一个
# name_list.pop(1)
# print(name_list)
# ['张三', '王五', '赵六']
# li = [1, 2, 3, 4, 5, 6]
# li.remove(1)
# print(li)
# name_list = ['张三', '李四', '王五', '赵六']
# del name_list
# print(name_list)  # NameError: name 'name_list' is not defined
name_list = ['张三', '李四', '王五', '赵六']
name_list.clear()
print(name_list)
# []

6、练习:输入一个字符helloworld, 将l字符替换成A后, 并将所有o删掉,请将程序结果打印出来

# a = input("请输入一个字符串:")
# print(a.replace('l', 'A').replace('o', ''))