【我奶奶都能看懂系列005】??python基础语法——容器,小学生也可以学!
专注Golang,Python语言,云原生,人工智能领域得博主;
过去经历的意义在于引导你,而非定义你;
欢迎点赞 收藏 ?留言!
文章图片
【【我奶奶都能看懂系列005】??python基础语法——容器,小学生也可以学!】
前言
- 字符串
-
- 下标
- 切片
- 字符串查找相关的操作
- 字符串的替换
- 字符串的分隔
- 字符串连接
- 列表
-
- 列表遍历
- 向列表添加数据的方法
- 列表中的数据查询操作
- 列表删除操作
- 列表中的排序操作
- 列表的嵌套
- 元祖
字符串
# 单引号
name = 'isaac'
print(type(name), name)
# 双引号
name = "isaac"
print(type(name), name)# 三引号
my_str = """hello world
hello python!
"""
print(type(my_str))my_str = '''aaa
bbb
'''
print(type(my_str))# 如果字符串本身包含单引号,使用双引号定义,如果包含双引号可以使用单引号定义,或者统一使用三引号引号
# my name is 'isaac'
my_name = "my name is 'isaac'"
下标
# 下标也称为是索引,是一个整型数字,可以是正数, 也可以是负数
# 正数下标是从0开始的,表示第一个字符, -1 表示最后一个字符
my_str = 'hello'
# 下标的使用语法变量[下标]
print(my_str[0])# h
print(my_str[1])# eprint(my_str[-1])# o
print(my_str[-3])# l# len() 函数可以得到字符串的长度
print(len(my_str))# 5
# 使用正数下标书写字符串中最后一个元素
print(my_str[len(my_str) - 1])
print(my_str[len(my_str) * (-1)])
切片
# 切片可以获取一段数据,多个数据, 下标(索引只能获得一个数据)
# 切片语法:变量[start:end:step], 会得到一个新的字符串
# start 开始位置的下标
# end结束位置的下标, 不包含end 对应的下标
# step 步长,下标之间的间隔,默认是1
my_str = 'hello'
my_str1 = my_str[2:4:1]# ll
print(my_str1)
# step 如果是1 ,即默认值,可以不写
my_str2 = my_str[2:4]# ll
print(my_str2)# end 位置不写, 表示是len() , 即可以取到最后一个元素
my_str3 = my_str[2:]# llo
print(my_str3)
# start 位置也可以省略不写, 表示是0,
my_str4 = my_str[:3]# hel
print(my_str4)# start 和end 都不写,但是冒号需要写
my_str5 = my_str[:]# hello
print(my_str5)print(my_str[-4: -1])# ell
print(my_str[3:1], '1')# 没有数据,
# 步长可以是负数
print(my_str[3:1:-1], '2')# llprint(my_str[::-1])# 字符串的逆置, ollehprint(my_str[::2])# 0 2 4 hlomy_str[0:5:2]print(my_str[1:4:-1])
字符串查找相关的操作
my_str = 'hello world itcast and itcastcpp'# find() 在字符串中查找是否存在某个字符串
# my_str.find(sub_str, start, end)
# sub_str: 要在字符串中查找的内容, 类型 str
# start: 开始位置,从哪里开始查找, 默认是0
# end: 结束的位置,查找到哪里结束, 默认是len()
# 返回值:即方法执行的结果是什么, 如果找到 sub_str ,返回的sub_str 在 my_str 中的位置的正数下标
# 如果没有找到,返回 -1index = my_str.find('hello')# 0
print(index)
# 从下标为3的位置,开始查找字符串 hello
print(my_str.find('hello', 3))# -1
print(my_str.find('itcast'))# 12
print(my_str.find('itcast', 15))# 23
# rfind()right find()从右边(后边) 开始查找
print(my_str.rfind('itcast'))# 23# index() 在字符串中查找是否存在某个字符串
# my_str.index(sub_str, start, end)
# sub_str: 要在字符串中查找的内容, 类型 str
# start: 开始位置,从哪里开始查找, 默认是0
# end: 结束的位置,查找到哪里结束, 默认是len()
# 返回值:即方法执行的结果是什么, 如果找到 sub_str ,返回的sub_str 在 my_str 中的位置的正数下标
# 如果没有找到,会报错print(my_str.index('hello'))# 0# print(my_str.index('hello', 3))# 没有找到,代码会报错# rindex() 从后边开始查找
print(my_str.index('itcast'))# 12
print(my_str.rindex('itcast'))# 23# count(sub_str, start, end) 统计出现的次数,
print(my_str.count('aaaa'))# 0
print(my_str.count('hello'))# 1
print(my_str.count('itcast'))# 2
print(my_str.count('itcast', 20))# 1
字符串的替换
# my_str.replace(old_str, new_str, count)字符串的替换, 将my_str中的 old_str 替换成 new_str
# old_str: 将要被替换的字符串
# new_str: 新的字符串, 替换成的字符串
# count: 替换的次数,默认是全部替换
# 返回值: 得到一个新的字符串,不会改变原来的字符串my_str = 'hello world itcast and itcastcpp'my_str1 = my_str.replace('itcast', 'itheima')
print('my_str :', my_str)
print('my_str1:', my_str1)my_str2 = my_str.replace('itcast', 'itheima', 1)# 替换一次
print('my_str2:', my_str2)
字符串的分隔
my_str = 'hello world itcast and itcastcpp'# my_str.split(sub_str, count)将my_str 字符串按照sub_str 进行切割,
# sub_str: 按照什么内容切割字符串, 默认是空白字符, 空格, tab键
# count: 切割几次,默认是全部切割
# 返回值: 列表 []result = my_str.split()# 按照空白字符,全部切割
print(result)print(my_str.split('itcast'))
print(my_str.split('itcast', 1))# 切割一次,
print(my_str.rsplit('itcast', 1))
字符串连接
# my_str.join(可迭代对象)
# 可迭代对象, str, 列表(需要列表中的每一个数据都是字符串类型)
# 将my_str 这个字符串添加到可迭代对象的两个元素之间
# 返回值: 一个新的字符串, 不会改变原字符串的值my_str = '_'.join('hello')# 会把_ 加入到 hello每两个元素之间 即 h_e_l_l_o
print(my_str)
print('_*_'.join('hello'))# h_*_e_*_l_*_l_*_o# 定义列表
my_list = ['hello', 'cpp', 'python']print("_".join(my_list))# hello_cpp_python
print("_*_".join(my_list))# hello_*_cpp_*_python
print(" ".join(my_list))# hello cpp python
列表
# 列表 是python中的一种数据类型,可以存放多个数据,列表中的数据可以是任意类型的
# 列表 list ,定义使用[] 进行定义# 定义空列表
my_list = []
print(my_list, type(my_list))
my_list1 = list()# 空列表
print(my_list1, type(my_list1))# 定义带数据的列表, 数据元素之间使用逗号隔开
my_list2 = [1, 3.14, True, 'isaac']
print(my_list2, type(my_list2))
# 求列表中数据元素的个数,即列表的长度
num = len(my_list2)
print(num)# 列表支持下标和切片操作
print(my_list2[1])# 3.14
print(my_list2[-1])# isaacprint(my_list2[1:3])# [3.14, True]# 下标操作和字符串中不同的是: 字符串不能使用下标修改其中的数据, 但是列表可以使用下标修改列表中的数据
my_list2[0] = 18
print(my_list2)my_list2[-1] = 'hello'
print(my_list2)my_list2[0] = 'python'
print(my_list2)
列表遍历
my_list = ['郭德纲', '于谦', '小岳岳', '孙越']for i in my_list:# i 就是列表中的每一个数据
print(i)print('*' * 30)j = 0# j 表示下标
while j < len(my_list):
print(my_list[j])
j += 1
向列表添加数据的方法
# 向列表中添加数据的方法,都是直接在原列表中进行添加的,不会返回新的列表
my_list = ['郭德纲', '于谦', '小岳岳', '孙越']
print(my_list)
# 列表.append(数据) 向列表的尾部追加数据
my_list.append('aa')
print(my_list)
result = my_list.append(12)# 不要这样书写.
# print(result)# None 关键字,表示空,
print(my_list)# 列表.insert(下标, 数据)在指定的下标位置进行添加数据
my_list.insert(0, 'isaac')
print(my_list)
# print(my_list.insert(5, 3.14))不能这样书写, None# 列表.extend(可迭代对象)# str列表, 会将可迭代对象中的数据逐个添加到原列表的末尾
my_list.extend('hel')
print(my_list)
my_list.extend([1, 'python', 3])
print(my_list)
列表中的数据查询操作
my_list = [1, 3.14, 'isaac', False]
# index()根据数据值,查找元素所在的下标, 找到返回元素的下标, 没有找到,程序报错
# 列表中没有find方法,只有index() 方法
# 查找 3.14 在列表中下标
num = my_list.index(3.14)# 1
print(num)# num1 = my_list.index(100)# 程序报错, 因为数据不存在# count() 统计出现的次数
num3 = my_list.count(1)# 1
print(num3)# in /not in判断是否存在, 存在是True, 不存在是False,一般和if 结合使用
num4 = 3.14 in my_list# True
print(num4)num4 = 3.14 not in my_list# False
print(num4)
列表删除操作
my_list = [1, 2, 4, 5, 6, 9]
# 1. 根据元素的数据值删除 remove(数据值), 直接原列表中的数据
my_list.remove(4)
print(my_list)# [1, 2, 5, 6, 9]
# my_list.remove(4)# 程序报错,要删除的数据不存在# 2. 根据下标删除
# 2.1 pop(下标) 默认删除最后一个数据,返回删除的内容
num = my_list.pop()# 删除最后一个数据 9
print(num)
print(my_list)# [1, 2, 5, 6]num = my_list.pop(2)# 删除下标为2的数据即 5
print(num)
print(my_list)# [1, 2, 6]
# my_list.pop(10)# 删除的下标不存在,会报错# 2.2 del 列表[下标]
del my_list[1]# 删除下标为1的数据 2
print(my_list)# del my_list[10]# 删除不存在的下标, 会报错
列表中的排序操作
# 想要对列表中的数据进行排序,前提是列表中的数据类型是一样的
my_list = [1, 5, 3, 7, 9, 6]# 列表.sort()直接在原列表中进行排序
# my_list.sort()# 默认是从小到大排序, 即升序
# my_list.sort(reverse=True)# 通过reverse=True,从大到小排序
print(my_list)# 补充: sorted(列表)排序, 不会在原列表中进行排序,会得到一个新的列表
my_list1 = sorted(my_list)
my_list2 = sorted(my_list, reverse=True)
print(my_list)
print(my_list1)
print(my_list2)print("=" * 30)
my_list3 = ['a', 'b', 'c', 'd', 'e']
# 逆置,
my_list4 = my_list3[::-1]# 得到一个新的列表
print(my_list3)
print(my_list4)# 在原列表直接逆置列表.reverse()
my_list3.reverse()
print(my_list3)
列表的嵌套
school_names = [['北京大学', '清华大学'],
['南开大学', '天津大学', '天津师范大学'],
['山东大学', '中国海洋大学']]print(school_names[1])# ['南开大学', '天津大学', '天津师范大学']
print(school_names[1][1])# 天津大学
print(school_names[1][1][1])# 津# 山东大学
print(school_names[2][0])for schools in school_names:
# print(schools)# 列表
for name in schools:
print(name)
元祖
# 元组和列表非常相似, 都可以存放多个数据,可以存放不同数据类型的数据
# 不同点: 列表使用 [] 定义, 元组使用 () 定义
# 列表中的数据可以修改,元组中的数据不能被修改my_list = [18, 3.14, True, 'isaac']# 列表my_tuple = (18, 3.14, True, 'isaac')# 元组
print(my_tuple, type(my_tuple))# 元组支持下标和切片操作
print(my_tuple[1])# 3.14# 定义空元祖, 没有意义
my_tuple1 = ()
print(my_tuple1, type(my_tuple1))
my_tuple2 = tuple()# 定义一个数据元素的元组, 数据元素后边,必须有一个逗号
my_tuple3 = (3)# 3
my_tuple4 = (3,)print(my_tuple3, type(my_tuple3))
print(my_tuple4, type(my_tuple4))
推荐阅读
- 宽容谁
- 我要做大厨
- 一个小故事,我的思考。
- 家乡的那条小河
- 第三节|第三节 快乐和幸福(12)
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷