python列表理解中的If/else

python列表理解中的If/else,python,list-comprehension,Python,List Comprehension,我想根据传递的参数从文件中返回随机单词。但是如果论点不匹配,我不想返回任何东西。我的方法如下所示: def word_from_score(self,score): print(random.choices([word for word in self.file if sum([LETTER_SCORES[letter] for letter in word ]) == score])) 它根据命令行中传递的参数从文件中返回正确的单词,但如果参数不匹配,我不希望返回任何内容,如“”。我

我想根据传递的参数从文件中返回随机单词。但是如果论点不匹配,我不想返回任何东西。我的方法如下所示:

def word_from_score(self,score):
    print(random.choices([word for word in self.file if sum([LETTER_SCORES[letter] for letter in word ]) == score]))
它根据命令行中传递的参数从文件中返回正确的单词,但如果参数不匹配,我不希望返回任何内容,如“”。我如何才能在此声明中添加其他内容?

应该是:

def word_from_score(self,score):
    print(random.choices([(word if sum([LETTER_SCORES[letter] for letter in word ]) == score else "") for word in self.file]))

(…if…else…)
实际上是三元运算符,而不是周围列表理解的一部分。

请提供一个示例输入和预期输出。编辑:它不起作用,它返回“即使在文件中传递的是字母和的单词”argument@Frendom (1)您是否检查过它是否与您的原始功能一起工作?(2)您能否给出一个简单的测试示例?