回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想这么做:</p>
<p>在以逗号分隔的正整数列表的输入文件中,将所有两个或更多类似的相邻数字打包,例如</p>
<pre><code>in_values = 28, 30, 45, 28, 28, 40, 40, 40, 45, 678, 567, 555, 555, 555, 555,
6, 8, 23, 34, 34, 90
expected output = 28, 30, 45, 28:2, 40:3, 45, 678, 567, 555:4, 6, 8, 23, 34:2, 90
</code></pre>
<p>我尝试使用for&while循环来执行此操作,但不知道如何跳过for循环中的多个/重复项。你知道吗</p>
<pre><code>def packValues(ints):
L = []
for i in range (len(ints)-1):
if not ints[i] == ints[i+1]:
L.append(ints[i])
continue
c = 1
while ints[i] == ints[i+1]:
c += 1
i += 1
L.append(str(ints[i]) + ':' + str(c))
print(L)
in_values = 28, 30, 45, 28, 28, 40, 40, 40, 45, 678, 567, 555, 555, 555, 555, 6, 8, 23
packValues(in_values)
</code></pre>
<p>输出(不正确!)是:</p>
<pre><code>[28, 30, 45, '28:2', 28, '40:3', '40:2', 40, 45, 678, 567, '555:4', '555:3', '555:2', 555, 6, 8]
</code></pre>