我正在尝试使用生成器压缩列表:
例子
[1, 1, 1, 1, 2, 2, 2, 1, 1, 1] == [1, 2, 1]
[5, 5, 5, 4, 5, 6, 6, 5, 5, 7, 8, 0, 0])) == [5, 4, 5, 6, 5, 7, 8, 0]
我尝试使用一个生成器来检查第一个和第二个元素是否相等,然后检查第二个和第三个,依此类推,直到它不再等于“当它达到 4 时”,然后产生“5”,然后它将重复从以下开始的过程“4”
代码
test = [5, 5, 5, 4, 5, 6, 6, 5, 5, 7, 8, 0, 0] # sample list
from typing import Iterable
def compress(items: list) -> Iterable:
x = 0
while items[x] == items[x + 1]:
x += 1
yield items[x]
ans = compress(test)
for x in ans:
print(ans)
但我不断得到
生成器对象压缩在 0x00000254D383C820。为什么它不循环?
如果我尝试使用 next() 它只会上升到 5 并且不会检查其他数字。
非常感谢任何帮助。
catspeake
杨__羊羊
喵喵时光机
陪伴而非守候
相关分类