擅长:python、mysql、java
<p>我建议这样做:</p>
<pre><code>def average1(nlist):
length = len(nlist)
finalElem2 = nlist[-1]
penultElem = nlist[-2]
sum_1 = 0
print("The values contained in the list are as follows: ",end="")
for i in nlist:
if i not in (finalElem2, penultElem):
print(i, end=", ")
elif i == penultElem:
print(i, end="")
else:
print(" and ",i,".",sep="")
print("The length of the list is",length,"values.")
for i in nlist:
sum_1 = sum_1 + int(i)
average2 = sum_1 / length
print("The average is",average2)
average1(nlist)
</code></pre>
<p>这里的主要改进是使用单个<code>if/elif/else</code>块来更有效地过滤所需的结果。如果您考虑列表中数字后面的字符:一些字符以<code>,</code>结尾,一个以<code>and</code>结尾,另一个以<code>.</code>结尾,那么这是使用单个<code>if/else</code>块来处理这些情况的一个很好的理由。在</p>
<p>您还可以使用<code>pop()</code>从列表末尾返回两次元素:</p>
^{pr2}$