【发布时间】:2017-10-28 02:27:41
【问题描述】:
我被一个家庭作业问题困住了,完全没有想法。在过去的 7 个小时里,我尝试了不同的代码变体,但无济于事。作业题如下:
编写一个名为 shareALetter 的函数,它接受一个参数 wordList —— 一个单词列表。创建并返回一个字典,其中 wordList 中的每个单词都是一个键,对应的值是 wordList 中至少与该单词共享一个字母的所有单词的列表。字典中的任何值都不应有重复的单词。
例如以下是正确的输出:
print(shareALetter(horton))
{'I': ['I'],
'say': ['say', 'what', 'mean', 'and'],
'what': ['say', 'what', 'mean', 'and'],
'mean': ['say', 'what', 'mean', 'and'],
'and': ['say', 'what', 'mean', 'and']}
下面是最接近解决问题的代码:
def shareALetter(wordList):
shareCount = {}
words=[]
string=''
for word in wordList:
if word not in words:
words.append(word)
if word not in string:
string += word
if word not in shareCount:
shareCount[word] = ''
for key in shareCount:
sharedWords = []
for word in words:
for letter in string:
if letter in word and word not in sharedWords:
sharedWords.append(word)
if word not in shareCount:
shareCount[word]=sharedWords
return(shareCount)
print(shareALetter(test1))
我知道这很糟糕、草率且效率低下,可能有十几个问题,但我不知道如何解决这里的任何问题。任何帮助将不胜感激。
【问题讨论】:
-
不够清楚。什么是输入,什么是预期输出?
-
输入:['I', 'say', 'what', 'I', 'mean', 'and', 'I', 'mean', 'what', 'I' , 'say'] 预期输出:{'I': ['I'], 'say': ['say', 'what', 'mean', 'and'], 'what': ['say', 'what', 'mean', 'and'], 'mean': ['say', 'what', 'mean', 'and'], 'and': ['say', 'what', 'mean ', '和']}
标签: python dictionary