我正在做一个有趣的小问题,是一个朋友寄给我的。这个问题要求我使用文本文件中的常用词填充数组,然后打印此列表中包含用户提供的某些字符的所有词。我能够填充我的数组没有问题,但是代码中实际比较两个列表的部分似乎不起作用。下面是我编写的用于比较这两个列表的函数。
#Function that prompts user for the set of letters to match and then compares that list of letters to each word in our wordList.
def getLetters():
#Prompt user for list of letters and convert that string into a list of characters
string = input("Enter your target letters: ")
letterList = list(string)
#For each word in the wordList, loop through each character in the word and check to see if the character is in our letter list, if it is increase matchCount by 1.
for word in wordList:
matchCount = 0
for char in word:
if char in letterList:
matchCount+=1
#If matchCount is equal to the length of the word, all of the characters in the word are present in our letter list and the word should be added to our matchList.
if matchCount == len(word):
matchList.append(word)
print(matchList)
代码运行得很好,我没有得到任何错误输出,但是一旦用户输入了他们的字母列表,就什么也没有发生。为了测试,我尝试了一些与我知道的单词列表中的单词相匹配的输入(例如added、axe、tree等)。但在我输入我的字母串后,没有任何东西会打印出来。
这是我填充单词列表的方式:
def readWords(filename):
try:
with open(filename) as file:
#Load entire file as string, split string into word list using whitespace as delimiter
s = file.read()
wordList = s.split(" ")
getLetters()
#Error handling for invalid filename. Just prompts the user for filename again. Should change to use ospath.exists. But does the job for now
except FileNotFoundError:
print("File does not exist, check directory and try again. Dictionary file must be in program directory because I am bad and am not using ospath.")
getFile()
编辑:将函数更改为在开始循环字符之前将matchCount重置为0,但仍然没有输出。
编辑:添加全局声明以从函数内部修改列表:
wordList = [] #['axe', 'tree', 'etc']
def readWords(filename):
try:
with open(filename) as file:
s = file.read()
global wordList # must add to modify global list
wordList = s.split(" ")
except:
pass
下面是一个工作示例:
wordList = ['axe', 'tree', 'etc']
# Function that prompts user for the set of letters to match and then compares that list of letters to each word in our wordList.
def getLetters():
# Prompt user for list of letters and convert that string into a list of characters
string = input("Enter your target letters: ")
letterList = list(string)
# For each word in the wordList, loop through each character in the word and check to see if the character is in our letter list, if it is increase matchCount by 1.
matchList = []
for word in wordList:
matchCount = 0
for char in word:
if char in letterList:
matchCount += 1
# If matchCount is equal to the length of the word, all of the characters in the word are present in our letter list and the word should be added to our matchList.
if matchCount == len(word):
matchList.append(word)
print(matchList)
getLetters()
输出:
Enter your target letters: xae
['axe']
您的代码只需要一个简单的更改:
将wordList作为参数传递给getLetters
。如果你愿意,你也可以做一个改变,以便知道这个单词的所有字母是否都在字母列表中。
def getLetters(wordList):
string = input("Enter your target letters: ")
letterList = list(string)
matchList = []
for word in wordList:
if all([letter in letterList for letter in word]):
matchList.append(word)
return matchList
而在readWords
中:
def readWords(filename):
try:
with open(filename) as file:
s = file.read()
wordList = s.split(" ")
result = getLetters(wordList)
except FileNotFoundError:
print("...")
else:
# No exceptions.
return result
问题内容: 我正在使用java和iReport(来自jasper)创建一个简单的报告程序,应该以pdf格式创建报告,以显示PC的IP地址,位置,当前是否空闲(由其他系统处理),以及当前附加的项目列表(也在其他位置进行管理)。 我为此使用了iReport,并创建了一个虚拟集合生成类,如下所示: 在这种情况下,实体类为: 在Internet上进行了一些搜索之后,我找到了一种使用子报表执行类似 操作的方
这个问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能帮助未来的读者。 总结: 对于我的商务课程,我们必须开发产品和/或服务。我正试图为其他团队开发一个解决方案,帮助他们管理库存。我已经有一个用Python开发的程序了,但是,C使开发GUI变得更容易(谢谢你,Visual Studio)。我在列表方面有困难。 以前检查过的资源: 在C中创建列表列表#
问题内容: 我有一个清单清单: 我想要以下格式的输出: 我已经按照以下方式尝试过,但是输出的方式不是理想的: 输出: 在更改打印调用以代替使用时: 输出: 有任何想法吗? 问题答案: 遍历原始列表中的每个子列表,并在打印调用中使用以下命令将其解压缩: 默认情况下,分隔设置为,因此无需显式提供分隔。打印: 在您的方法中,您要遍历每个子列表中的每个元素,并分别进行打印。通过使用您在打印调用中 解压缩
这里是Python新手。 我有一个文档列表,还有另一个搜索词列表。我现在想迭代每个文档,并将任何搜索词的所有匹配项替换为类似
我有一个列表的数据集,其中包含其他列表,我想找到前1000个单词 我试过这个,但不起作用: 从集合导入计数器counts_top1000=[逐字,Counter(mainlist).MOST_COMMAN(1000)] 请注意,我的数据集是“mainlist”。 如果你有更多的想法,我将不胜感激。
问题内容: 考虑一下Python中既包含字母字符串又包含数字字符串的列表 如何将其转换为混合值列表 请注意,通常我们可能不知道字母字符串在列表中的位置,即我们可能有 问题答案: 您可以使用生成器函数和异常处理: