【python】字符串、列表、元组、字典的基础操作,查找find,修改,删除remove,插入insert ,合并+,去重set,排序sort 等等,欢迎大家交流

当天知识点回顾

  • 能够知道列表的定义格式 [元素1, 元素2, ....]
  • 能够使用列表的添加元素的三个方法(append、insert、extend)
  • 能够使用列表的下标来对列表中的元素进行修改
  • 能够使用列表的查询方法(in、not in、index、count)
  • 能够使用列表中删除元素的方法(del, pop, remove)
  • 能够使用 sort 和 reverse 完成对列表的排序。
  • 能够知道列表嵌套的格式

随堂练习

  1. 给定字符串 “abcdefghi”,使用切片取出 下标 0-4 的字符。
  2. 根据课件练习字符串常见操作的方法。
  3. 定义一个列表,列表中的元素有 张三、李四、王五、赵六
  4. 分别使用for循环和while循环打印出 练习7 列表中的元素
  5. 向练习7的列表中追加一个名字 小明
  6. 将 练习7 列表中名字李四 改为 赵四
  7. 将练习7 列表中的 赵六 删除
  8. 给定一个列表 [32, 17, 28, 90, 11] 完成对该列表的升序和降序的排序

每日练习

题目4(实操题)

题干

james有一个关于爬虫的项目,他需要在一个字符串中查找python这个关键字,
当前他通过index()函数进行查找,虽然可以实现查找的需求,但是总会在
没有查找到关键字的时候报错,为什么会报错,如何优化?

训练目标
  1. 理解find函数和index函数的区别
训练提示
  1. find函数如果查找到则返回索引值,如果查不到,则返回-1
  2. index函数如果查找到则返回索引值,如果查不到,则报错
参考方案
  1. 通过使用find函数的方式替换掉index
操作步骤
  1. 通过使用find函数的方式替换掉index
参考答案
str1 = "0123456 python dsafdsf"
print(str1.find('python')) #返回位置为8

题目5 (实操题)

题干

1,判断单词great是否在这个字符串中,如果在,则将每一个great后面加一个s, 如果不在则输出 great不在该字符串中
2,将整个字符串的每一个单词都变成小写,并使每一个单词的首字母变成大写
3,去除首尾的空白,并输出处理过后的字符串

训练目标
  1. 字符串的相关操作
训练提示
  1. 字符串的相关操作来解决上述问题
  2. 使用判断语句来判断语句成立的条件
参考方案
  1. 使用in判断某一个子字符串是否在母字符串中
  2. 使用replace函数替换子字符串
  3. 使用lower函数将字符串变为小写
  4. 使用title函数将单词的首字母大写
  5. 使用strip函数去除字符串首尾的空白
操作步骤
  1. 使用in判断某一个子字符串是否在母字符串中
  2. 使用replace函数替换子字符串
  3. 使用lower函数将字符串变为小写
  4. 使用title函数将单词的首字母大写
  5. 使用strip函数去除字符串首尾的空白
参考答案
words = " great craTes Create great craters, But great craters Create great craters "
if 'great' in words:
    # 在great后面加s
    new_words1 = words.replace('great','greats')
    print(new_words1)

else:
    print('great不在该字符串中')

new_words2 = words.lower()
print(new_words2)

new_words3 = words.title()
print(new_words3)

new_words4 = words.strip()
print(new_words4)

题目6 (实操题)

题干

有一个列表,判断列表中的每一个元素是否以s或e结尾,如果是,则将其放入一个新的列表中,最后输出这个新的列表
my_list = [“red”, “apples”, “orange”, “pink”, “bananas”, “blue”, “black”, “white”]

训练目标

让学员知道列表的循环和值的获取,以及列表的操作方法

训练提示

使用for或者while循环可以取到列表中的每一个值
使用字符串的操作方法可以得知某一个字符串是否是以某值结尾的

参考方案

使用for或while循环获取每一个值
使用endswith可以判断列表中每一个元素是否以s或e结尾
使用append方法可以将元素放入列表中

操作步骤

使用for或while循环获取列表的每一个值
使用endswith判断列表中每一个元素是否以s或e结尾
使用append方法可以将元素放入列表中

参考答案
my_list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
new_list = []
for i in my_list:
    if i.endswith('s') or i.endswith('e'):
        new_list.append(i)
print(new_list)

拓展提高

题目7(实操题)

题干

给定一个列表,首先删除以s开头的元素,删除后,修改第一个元素为"joke",并且并且把最后一个元素复制一份,放在joke的后边

my_list = [“spring”, “look”, “strange”, “curious”, “black”, “hope”]

训练目标

列表包含的操作
列表的相关操作

训练提示
  1. 通过for循环遍历列表,获取到每一个元素
  2. 通过列表的操作方法对列表进行修改
参考方案
  1. 通过for循环获取每一个元素
  2. 通过remove删除列表中的元素
  3. 通过insert函数在指定位置插入元素
操作步骤
  1. 通过for循环获取每一个元素,并使用startswith方法判断是否以某字符串开头
  2. 如果条件成立,则通过remove删除选中的元素
  3. 获取到最后一个元素,通过insert将元素放在指定的位置上
参考答案
my_list = ["spring", "look", "strange", "curious", "black", "hope"]

# 删除列表中以s为开头的元素
for i in my_list:
    if i.startswith('s'):
        my_list.remove(i)

# 删除后列表输出
print(my_list)

# 修改第一个元素为"joke",并且打印结果
my_list[0] = 'joke'
print(my_list)

# 列表最后一个元素复制一份,打印复制结果
last = my_list[-1]
print(last)

# 列表最后一个元素插入到'joke'后面,并且打印结果
my_list.insert(1,last)
print(my_list)

题目8 (实操题)

题干

将下列两个列表合并,将合并后的列表去重,之后降序并输出

list1 = [11, 45, 34, 51, 90]
list2 = [4, 16, 23, 0]

训练目标

列表操作方法的使用

训练提示

1, 列表直接可以直接拼接,元素会合并到同一个列表中
2, 可以使用sort对列表进行排序

参考方案

1,使用 + 对列表进行拼接
2,使用set方法将列表转变成集合,以便于去重,
3,使用sort函数,参数reverse=True对列表进行倒序排序

操作步骤

1,使用 + 对列表进行拼接
2,使用set方法将列表转变成集合,以便于去重,
3,使用sort函数,参数reverse=True对列表进行倒序排序

参考答案
list1 = [11, 45, 34, 51, 90]
list2 = [4, 16, 23, 0]
# 合并列表
new_list = list1 + list2

# 列表去重
new_list2 = list(set(new_list))
print(new_list2)

# 列表倒序排列
new_list2.sort(reverse=True)
print(new_list2)

自主预习

题目9 (实操题)

题干

有如下两行代码:
tuple1 = (2)
tuple2 = (2,)
请问tuple1与tuple2有什么不同

训练目标

让学生知道含有元素的元组的定义的方式

训练提示

通过肉眼能看到的只是一个逗号的区别,那么在python里面他是怎么理解的呢?

参考方案

用type()方法来分别对这两个变量进行区别

操作步骤

用type(tuple1),与type(tuple12)的结果进行比较

参考答案
tuple1 = (2)
tuple2 = (2,)

print(type(tuple1)) # 输出结果为<class 'int'>  --表示这个一个整数2
print(type(tuple2)) # 输出结果为<class 'tuple'>  --表示这个是一个元组(2,)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值