擅长:python、mysql、java
<p>我认为您的想法是正确的,但在完成子列表后,您不会将<code>num</code>重置为0。现在要做的是计算所有子列表中的数字0,1,2的总数。您需要的是每个子列表的计数。你知道吗</p>
<p>在遍历整个子列表之后,还必须附加<code>num</code>。所以你需要把它从内部for循环体中去掉。你知道吗</p>
<p>修订日期:</p>
<pre><code>def count(data):
""" (list of list of str) -> list of int
Return the numbers of occurrences of strings that end in digits 0, 1, or 2
for each string.
>>> data = [['N', 'OW1'], ['Y', 'EH1', 'S'], ['AW1', 'OW1']]
>>> count(data)
[1, 1, 2]
"""
num_list = []
num = 0
for sublist in data:
for item in sublist:
if item[-1] in "012":
num += 1
# item in sublist body is over
# num is now total occurrences of 0,1,2 in sublist
num_list.append(num)
num = 0
return num_list
print count([['N', 'OW1'], ['Y', 'EH1', 'S'], ['AW1', 'OW1']])
</code></pre>