使用 "for" 循环打印 Python 中的元组并使用星号运算符 (*) 解包

Printing a tuple in Python using both "for" loop and unpacking with star operator (*)

我正在尝试以两种不同的方式打印以下代码中“结果”元组的项目:

在输出中,字符串“reference point”应该用来分隔两种方式的结果。

animals = {"dog", "cat", "pig"}
numbers = (1, 2, 3)
column = ['a', 'b', 'c']
result = zip(animals, column, numbers)

#first way of printing the items in the result tuple
for item in result:
    print(item)

print('\nreference point\n')

#second way of printing the items in the result tuple
print(*result, sep="\n")

然而,代码只输出第一个结果(在“参考点”之前),不管这是哪种方式(“for”循环或星号运算符),如下所示:

('dog', 'a', 1)
('pig', 'b', 2)
('cat', 'c', 3)

reference point

有谁知道为什么“结果”元组的项目只打印一次以及如何解决这个问题?我正在寻找如下输出:

('dog', 'a', 1)
('pig', 'b', 2)
('cat', 'c', 3)

reference point

('dog', 'a', 1)
('pig', 'b', 2)
('cat', 'c', 3)

zip构造的迭代器在第一次迭代时就耗尽了,需要重新构建或者做成result = list(zip(animals, column, numbers))

这样的列表