擅长:python、mysql、java
<p>首先可以使用<code>get</code>而不是if条件。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>
def countTokens(token):
if token is None:
return []
token = str(token).lower() #make digits an punctuations white spaces
tokens = token.translate(token.maketrans(digits + punctuation,\ " "*len(digits + punctuation)))
return tokens.split(" ")
def normalOrder(recipes, queries):
for r in recipes:
parts, scores = [[],[],[],[]], 0
parts[0] = countTokens(r["title"])
parts[1] = countTokens(r.get("categories", None ))
parts[2] = countTokens(r.get("ingredients", None))
parts[3] = countTokens(r.get("directions", None))
for q in queries:
scores += 8 * parts[0].count(q) + 4 * parts[1].count(q) + 2 * parts[2].count(q) + 1 * parts[3].count(q)
r["score"] = scores + r.get("rating", 0)
return recipes
</code></pre>