Если / еще в понимании списка Python - PullRequest
0 голосов
/ 11 ноября 2018

Я хотел бы вернуть случайное слово из файла, основываясь на переданном аргументе. Но если аргумент не совпадает ни с чем, я не хочу ничего возвращать. Мой метод выглядит так:

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]))

Возвращает правильное слово из файла на основе переданного аргумента в командной строке, но если аргумент не совпадает, я хочу ничего не возвращать, например ''. Как я мог еще добавить к этому утверждению?

1 Ответ

0 голосов
/ 11 ноября 2018

Должно быть:

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 ...) на самом деле является троичным оператором и не является частью понимания окружающего списка.

...