我有一个用Python编写的Grok学习练习。请回答以下问题和测试用例:
在开始一份新工作后,你会发现你的工作场所似乎有多种语言。也就是说,很多人似乎能说不止一种语言。你决定对你的同事做一个调查,看看他们都会说什么语言。编写一个程序输出只能说一种语言(他们是单语)的人的名字。在
从用户处读入一行或多行输入。每一行将是一个空格分隔的列表,列出可以说某种语言的同事的姓名。语言的名字将是第一件事。在
输入的第一行总是英语,你可以假设你工作场所的每个人都会说英语。在
以下是程序与用户之间的交互示例:
Line: English Tim Nicky James Tara John Ben
Line: German Nicky Tim
Line: Mandarin Tim John
Line:
James is monolingual.
Tara is monolingual.
Ben is monolingual.
你的程序可以任意顺序输出你的单语同事的名字。如果没有单语同事,你的程序应该输出人人都是多语种!。在
^{pr2}$我已经走到了这一步,但是我的代码的问题是它只适合1、2、3种语言。如果添加更多的语言,它将失败。 代码:
masterList = []
supportedLanguages = []
userInput = input("Line: ")
while userInput != "":
splitUserInput = userInput.split()
temporaryList = []
supportedLanguages.append(splitUserInput[0])
temporaryList.append(splitUserInput[0])
splitUserInput.remove(splitUserInput[0])
temporaryList.append(splitUserInput)
masterList.append(temporaryList)
userInput = input("Line: ")
namesMaster = []
for language in masterList:
languageCopy = language
languageCopy.remove(language[0])
names = set()
for name in languageCopy[0]:
names.add(name)
namesMaster.append(names)
if len(namesMaster) == 1:
result = namesMaster[0]
for name in result:
print(name, " is monolingual.")
elif len(namesMaster) == 2:
result = namesMaster[0].difference(namesMaster[1])
print("Everyone is multilingual!")
else:
result = namesMaster[0].difference(namesMaster[1], namesMaster[2])
for name in result:
print(name, " is monolingual.")
利用
defaultdict
:设置变量:
使用
^{pr2}$while
循环来循环你的input
,并将每次分配给变量,只要它是true
。在迭代您的
defaultdict
,看看是否有任何键只分配了一个值,如果没有,则打印每个人都是多语言的。在在这个Python-Grok练习中,目标是使用集合:
只使用所学知识-这是答案(也是最简单的)
相关问题 更多 >
编程相关推荐