Python字典--第1关:元组使用:这份菜单能修改吗?

任务描述

元组看起来犹如列表,但元组使用圆括号()而不是\[\]来标识,而且列表的元素可以修改,但元组的元素不能修改。本关介绍元组的常见使用方法以及元组和列表的使用区别。下面用饭店菜单的例子来说明列表和元组使用的应用场景。

现在有一个餐馆要向每个包厢都投放两份菜单,菜单上有4种菜名,我们想将两个菜单上最后一道菜名互换一下,也想快速知道改变后的两份菜单上单词首字母最大的菜名。而我们首先需要判断该用列表的方法还是元组的方法实现这个目标。

为了实现这个目标,我们需要先学习元组的相关使用知识以及元组与列表的区别。

相关知识

元组与列表

元组与列表很相似,两者之间的差别在于,列表在初始化后其中的元素还可以进行增删改等操作,但是元组在初始化后其中的元素不能进行更改,列表在赋值时使用方括号\[\],而元组在赋值时使用小括号()。因为元组具有不可变的特性,所以在能用元组替代列表的地方最好都使用元组,这样代码更安全。

创建元组

元组创建很简单,只需要在括号()中添加元素,元素之间用逗号隔开。元组中只包含单个元素时,需要在该元素后面添加逗号,例如:

menu1 = ('meat','fish','chicken')

menu2 = ('meat',)

访问元组

元组和列表一样,可以使用下标索引来访问元组中的值,例如:

复制代码
menu = ('meat','fish','chicken','carrot')
print(menu[0])
print(menu[1:3])

输出结果:

meat

('fish', 'chicken')

修改元组

元组中的元素值是不可以修改的,如果强行修改会报错,例如如果我们想修改元组menu中的某个值:

复制代码
menu = ('meat','fish','chicken','carrot')
menu[0] = 'pizza'
print(menu[0])

输出结果:

TypeError: 'tuple' object does not support item assignment

系统会自动报错,元组中的元素值不支持修改。

元组内置函数

元组和列表一样,都有一些内置函数方便编程。例如:

len(tuple):计算元组中元素个数。

max(tuple):返回元组中元素的最大值。

min(tuple):返回元组中元素的最小值。

tuple(seq):将列表转换为元组。

元组中的元素是不能改变的,它也没有append(),insert()这样的方法。但其他获取元素的方法和列表是一样的。

编程要求

本关的编程任务是补全src/Step1/menu_test.py文件的代码内容,实现如下功能:

将输入的菜单menu_list转换为元组类型;

打印输出生成的元组;

打印输出元组中首字母最大的元素。

本关涉及的代码文件src/Step1/menu_test.py的代码框架如下:

复制代码
# coding=utf-8
# 创建并初始化munu_list列表
menu_list = []
while True:
    try:
        food = input()
        menu_list.append(food)
    except:
        break
# 请在此添加代码,对menu_list进行元组转换以及元组计算等操作,并打印输出元组及元组最大的元素
###### Begin ######
#######  End #######

测试说明

本关的测试文件是src/Step1/menu_test.py,测试过程如下:

平台自动编译并运行menu_test.py,并以标准输入方式提供测评输入;

平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。

以下是平台对src/Step1/menu_test.py的样例测试集:

测试输入:

beef

veal

lamb

pork

预期输出:

('beef', 'veal', 'lamb', 'pork')

veal

测试输入:

duck

broth

fish

macaroni

预期输出:

('duck', 'broth', 'fish', 'macaroni')

macaroni

开始你的任务吧,祝你成功!

如果你希望成功,以恒心为良友,以经验为参谋,以小心为兄弟,以希望为哨兵。

答案

复制代码
# coding=utf-8
 
# 创建并初始化menu_list列表
menu_list = []
while True:
    try:
        food = input()
        menu_list.append(food)
    except:
        break
 
# 请在此添加代码,对menu_list进行元组转换以及元组计算等操作,并打印输出元组及元组最大的元素
###### Begin ######
menu_tuple = tuple(menu_list)
print(menu_tuple)
print(max(menu_tuple))
 
 
#######  End #######
相关推荐
2601_962293244 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
点心的游戏开发世界5 小时前
GDScript 入门笔记(十一):Lambda 与匿名函数
开发语言·笔记·游戏引擎·godot
2601_962293795 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
事圆则缓6 小时前
Kotlin 协程完全指南
开发语言·kotlin
我爱写代码i7 小时前
BeLink - 支持生成多种URL 缩短网址PHP源码
开发语言·php·短网址php源码
Java后端的Ai之路7 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_962077717 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert8 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
统计学小王子8 小时前
数学建模国赛倒计时4天——《统计模型精讲(混合效应模型R语言实现)》
开发语言·数学建模·r语言
知无不研8 小时前
c语言中循环的介绍与简单应用
c语言·开发语言·算法·循环·for·while