Python 使用常用字符创建字符串字典
我被一道家庭作业题难住了,完全不知所措。在过去的7个小时里,我尝试了不同版本的代码,但都没有用。作业问题如下: 编写一个名为shareALetter的函数,该函数接受一个参数wordList——一个单词列表。创建并返回一个字典,其中wordList中的每个单词都是一个键,相应的值是wordList中与该单词至少共享一个字母的所有单词的列表。字典中的任何值都不应该有重复的单词 例如,以下是正确的输出: 下面是最接近解决问题的代码:Python 使用常用字符创建字符串字典,python,dictionary,Python,Dictionary,我被一道家庭作业题难住了,完全不知所措。在过去的7个小时里,我尝试了不同版本的代码,但都没有用。作业问题如下: 编写一个名为shareALetter的函数,该函数接受一个参数wordList——一个单词列表。创建并返回一个字典,其中wordList中的每个单词都是一个键,相应的值是wordList中与该单词至少共享一个字母的所有单词的列表。字典中的任何值都不应该有重复的单词 例如,以下是正确的输出: 下面是最接近解决问题的代码: def shareALetter(wordList): s
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))
我知道这是可怕的,草率的,效率低下的,可能有十几个问题,但我不知道如何解决这里的任何问题。任何帮助都将不胜感激。当您需要创建这种算法时,想象一下您将如何使用纸和笔来处理这种情况是很有帮助的。如果我是你,我会写下几个单词,然后手工完成练习。这样做时,请注意您是如何解决问题的,并查看是否可以将这一系列操作转换为代码 这里有一点提示可以让你继续前进:
def share_a_letter(word_list):
character_matches = {}
for word_one in word_list:
character_matches[word_one] = set()
for word_two in word_list:
for character in word_two:
# TODO:
# check if the character is in word_one
# if so, do something special
return character_matches
words = ['hello', 'wopper', 'cat', 'pickle']
print(share_a_letter(words))
不够清楚。什么是输入,什么是预期输出?输入:['I','say','What','I','mean','and','I','mean','What','I','say':['say','What','mean','and'],'What':['say','What','mean','and'],'mean','and':['say','What','mean','and']。['say','mean','and']这足以为我指明一个可行的解决方案的方向。看来我的想法是正确的,但解决问题的方法是错误的。不管怎样,谢谢你的帮助。
def share_a_letter(word_list):
character_matches = {}
for word_one in word_list:
character_matches[word_one] = set()
for word_two in word_list:
for character in word_two:
# TODO:
# check if the character is in word_one
# if so, do something special
return character_matches
words = ['hello', 'wopper', 'cat', 'pickle']
print(share_a_letter(words))