Python——习题练习 part2 数据容器

本篇文章记录python数据容器章节的练习题。

目录

五,数据容器

01 列表

1.列表的常用功能

2. 列表循环遍历

02 元组基本操作

03 字符串的分割

04 序列的切片

05 集合 信息去重

06 字典


五,数据容器

01 列表

1.列表的常用功能

题目如下:

答案如下:

1. 使用`append()`方法向列表尾部追加一个数字31。
2. 使用`extend()`方法将一个新列表[29, 33, 30]追加到当前列表的尾部。
3. 通过下标索引取出列表的第一个元素,并将其赋值给变量num1。
4. 通过负数下标索引取出列表的最后一个元素,并将其赋值给变量num2。
5. 使用`index()`方法查找元素31在列表中的下标位置,并将其赋值给变量index。
6. 打印输出相关信息,包括取出的元素值、元素的下标位置以及最后列表的内容

# 列表List的常用操作
#定义列表,用变量接受
myList=[21,25,21,23,22,20]
#追加一个数字到列表尾部
myList.append(31)
#追加一个新列表到当前列表尾部
myList.extend([29,33,30])
#取出第一个元素
num1=myList[0] #下标索引
print(f"从列表中取出第一个元素,应为21,实际是{num1}")
#取出最后一个元素
num2=myList[-1]
print(f"从列表中取出最后一个元素,应为30,实际是{num2}")
#查找 显示下标位置
index = myList.index(31)
print(f"元素31在列表的下标位置是:{index}")
print(f"最后列表的内容是;{myList}")

2. 列表循环遍历

题目如下:

答案如下:

1. 使用 `while` 循环:
   - 初始化一个空列表 `newList1` 用于存储偶数。
   - 设置一个计数器 `count` 初始值为0,用于遍历列表 `myList`。
   - 在 `while` 循环中,检查当前元素 `myList[count]` 是否为偶数(即除以2的余数为0)。
   - 如果当前元素是偶数,则将其添加到 `newList1` 中。
   - 每次循环结束后,将计数器 `count` 增加1,直到遍历完整个列表。
   - 最后打印出通过 `while` 循环得到的包含所有偶数的新列表 `newList1`。

2. 使用 `for` 循环:
   - 初始化一个空列表 `newList2` 用于存储偶数。
   - 使用 `for` 循环遍历列表 `myList` 中的每个元素 `i`。
   - 在循环内部,检查当前元素 `i` 是否为偶数(即除以2的余数为0)。
   - 如果当前元素是偶数,则将其添加到 `newList2` 中。
   - 循环结束后,打印出通过 `for` 循环得到的包含所有偶数的新列表 `newList2`。

两种方法都可以实现相同的功能,但 `for` 循环通常更简洁和易读,因为它直接迭代列表的元素而不需要手动管理索引。

# 列表的循环案例
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
newList1 = []
newList2 = []

# while循环取偶数
count = 0
while count < len(myList):
    if myList[count] % 2 == 0:
        newList1.append(myList[count])
    count += 1
print(f"通过while循环,从列表中取出偶数,组成新列表:{newList1}")

# for循环取偶数
for i in myList:
    if i % 2 == 0:
        newList2.append(i)
print(f"通过for循环,从列表中取出偶数,组成新列表:{newList2}")

02 元组基本操作

题目如下:

答案如下: 

首先定义一个元组t1,包含三个元素:一个字符串(姓名),一个整数(年龄)和一个列表(爱好)。然后通过`index()`方法查询年龄和姓名在元组中的下标位置。接着使用`del`语句删除爱好列表中的第一个元素('football'),并使用`append()`方法向爱好列表添加一个新元素('coding')。最后打印修改后的元组。

# 元组基本操作
t1 = ('周杰轮',11,['football','music'])
#查询年龄下标位置
age = t1.index(11)
#查询姓名
name = t1.index('周杰轮')
#删除爱好football
del t1[2][0]
t1[2].append('coding')
print(f"现在元组为:{t1}")

03 字符串的分割

题目如下:

答案如下:

1. 使用`count()`方法统计字符串`my_str`中"it"字符出现的次数,并将结果赋值给变量`num`。
2. 使用`replace()`方法将字符串`my_str`中的空格替换为字母"l",并将结果赋值给变量`new_str`。
3. 使用`split()`方法以字母"l"作为分隔符,将字符串`new_str`分割成一个列表,并将结果赋值给变量`new_list`。
4. 分别打印出统计结果、替换后的字符串和分割后的列表。

#分割字符串
my_str= "itheima itcast boxuegu"
#统计有多少it
num = my_str.count("it")
print(f"字符串{my_str}中有{num}个it字符")
#替换
new_str = my_str.replace(" ","l")
print(f"字符串{my_str}被替换空格后,结果是{new_str}")
#安装l分割得到新列表
new_list = new_str.split("l")
print(f"字符串{new_str}被分割后,结果是{new_list}")

04 序列的切片

题目如下:

答案如下:

1. 方式1:首先使用切片操作`[::-1]`将字符串倒序,然后再次使用切片操作`[9:14]`取出倒序后的字符串的第9个到第13个字符(包括第9个,不包括第14个)。
2. 方式2:首先使用切片操作`[5:10]`取出字符串的第6个到第10个字符(包括第6个,不包括第11个),然后使用切片操作`[::-1]`将这部分字符串倒序。
3. 方式3:首先使用`split(",")`方法按照逗号分割字符串,得到一个列表,然后取出第二个元素(索引为1的元素),接着使用`replace("来","")`方法将其中的"来"替换为空字符串,最后使用切片操作`[::-1]`将结果字符串倒序。

序列的切片练习
my_str ="月过薪万,员序程马黑来,nohtyP学"
#倒序字符串,切片取出
result1 = my_str[::-1][9:14]
print(f"方式1结果:{result1}")
#切片取出,然后倒序
result2 = my_str[5:10][::-1]
print(f"方式2结果:{result2}")
#split分割,replace替换,倒序
result3 = my_str.split(",")[1].replace("来","")[::-1]
print(f"方式3结果:{result3}")

05 集合 信息去重

题目如下:

答案如下:

# 集合去重
my_list = ['黑马程序员','传智播克','黑马程序员','传智播克','itheima','itcast','itheima''itcast','best']
#定义一个空集合
my_set = set()
# for遍历列表
for element in my_list:
    my_set.add(element)

# 得到去重的集合对象
print(f"列表的内容是:{my_list}")
print(f"通过for循环后,得到的集合对象是:{my_set}")

06 字典

题目如下:

答案如下: 

# 字典 升职加薪
# 组织字典记录数据
info_dict = {
    "王力鸿":{
        "部门":"科技部",
        "工资":3000,
        "级别":1
    },
    "周杰轮":{
        "部门":"市场部",
        "工资":5000,
        "级别":2
    },
    "林俊节":{
        "部门":"市场部",
        "工资":7000,
        "级别":3
    },
    "张学油":{
        "部门":"科技部",
        "工资":4000,
        "级别":1
    },
    "刘德滑":{
        "部门":"市场部",
        "工资":6000,
        "级别":2
    }
}
print(f"员工在升职加薪之前的结果是:{info_dict}")
# for循环遍历字典
for name in info_dict:
    #if条件判断
    if info_dict[name]["级别"] == 1:
        # 升职加薪操作,获取到员工的信息字典
        employee_info_dict = info_dict[name]
        # 修改员工信息
        employee_info_dict["级别"] = 2
        employee_info_dict["工资"]+=1000
        #更新员工信息
        info_dict[name] = employee_info_dict
#输出结果
print(f"员工在升职加薪之后的结果是:{info_dict}")

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值