例如,我有一个文件中的单词列表。(下面列出)
aback
abacus
abandon
abandoned
logo
loincloth
loiter
loll
还有其他一些,一个非常大的单词列表!现在用户可以输入一个单词
例如“go”,然后它会显示包含章程'g'
和'o', "go", "logo", "goo"
的所有字词,依此类推。
我必须首先将文件变成字典类型,我真的不知道,该怎么做。
这是我做过的事情,我试图将同一个字母中的所有单词放在一起, 例如:
words = {'a': ['airport'], 'b': ['bathroom', 'boss', 'bottle'], 'e':['elephant']}
import operator
file = open("d1.txt","r")
words = {}
for line in file:
line = line.strip()
first_char = line[0]
if first_char not in words:
words[first_char] = []
words[first_char].append(line)
sorted_words = sorted(words.items(),key = operator.itemgetter(1))
print(sorted_words)
user_input = str(input("Pleae enter a ward: "))
v1 = words[user_input]
print(v1)
不幸的是,这就是我所做的一切,任何人都可以帮助我!
答案 0 :(得分:1)
这看起来有些奇怪,但无论如何,做这样的事情会更容易
word_to_search = 'gosh' # assume that this is user input
letters_list = list(word_to_search)
result = []
for letter in letters_list:
for word in file.read().split('\n'): #here you choose separator by which your words splitted
if letter in word:
result.append(word) #here you'll get a list of all words with matching letters
请注意,会有重复,要摆脱它们,你可以
result = set(result) #here you will get list of only unique words
如果你想使用字典
import string
alphabet = list(string.ascii_lowercase)
words_list = file.read().split('\n')
words_dict = dict((letter, dict()) for letter in alphabet)
for letter in alphabet:
for word in words_list:
if word.startswith(letter):
words_dict[letter].append(word)
这将为您提供字母作为键的字母和单词列表作为值
希望你能弄清楚如何在你的词典中迭代列表。 提示:你可以加入dict的值并迭代它们