擅长:python、mysql、java
<p>最好先循环查看奖品列表,然后将获奖者放在字符串结构中,例如:</p>
<pre class="lang-py prettyprint-override"><code>winners = ["john", "anna", "max", "george"]
prizes = [(2, "peanuts"), (2, "carrot")]
def congratulations(winners, prizes):
s = "Congratulations to "
i = 0
for p in prizes:
w = ', '.join(winners[i: i + p[0]])
s += "{} for winning {} {}{}, ".format(w, 1, p[1], '' if p[0]==1 else " each")
i += p[0]
return s
print(congratulations(winners, prizes))
# Congratulations to john, anna for winning 1 peanuts each, max, george for winning 1 carrot each,
</code></pre>
<p>如果首选<code>and</code>而不是<code>,</code>,则需要修改<code>w</code>pharse,例如:</p>
<pre class="lang-py prettyprint-override"><code>w = ', '.join(winners[i: i + p[0]])
w = ' and '.join(w.rsplit(', ', 1))
</code></pre>
<p>它将<code>', '</code>的最后一次出现替换为<code>' and '</code>,最后的字符串如下所示
<code>Congratulations to john and anna for winning 1 peanuts each, max and george for winning 1 carrot each,</code></p>