我想这么做:
在以逗号分隔的正整数列表的输入文件中,将所有两个或更多类似的相邻数字打包,例如
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
我尝试使用for&while循环来执行此操作,但不知道如何跳过for循环中的多个/重复项。你知道吗
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)
输出(不正确!)是:
[28, 30, 45, '28:2', 28, '40:3', '40:2', 40, 45, 678, 567, '555:4', '555:3', '555:2', 555, 6, 8]
输出:
如果上一个值包含在下面,则可以使用检查:
这里的代码片段将生成预期的输出。我刚刚在if语句中添加了一个else块,并删除了while块。你知道吗
输出:
编辑: 这也将考虑最近相邻的值。你知道吗
输出:
相关问题 更多 >
编程相关推荐