В определении списка я могу использовать оператор else (для обработки базового случая)? - PullRequest
0 голосов
/ 18 марта 2011

я хотел бы сделать что-то вроде:

sum([probabilities[ngram] for ngram in combination if probabilities.has_key(ngram)]) 

эта часть просто отлично. То, что я хотел бы сделать, это сделать что-то, что обрабатывает «базовый случай», то есть предполагает определенную вероятность, скажем .0001,

if not probabilities.has_key(ngram): 
    sum([probabilities[ngram] for ngram in combination if probabilities.has_key(ngram) else .0001])

Если вероятности - это диктант с ntuples в качестве ключей и с плавающей точкой в ​​качестве значений, комбинация - это список ntuple.

редактировать исправлены некоторые скобки

1 Ответ

3 голосов
/ 18 марта 2011

Нет.

sum(probabilities.get(ngram, 0.0001) for ngram in combination)
...