Python编程语言有哪些鲜为人知但有用的功能?
假设我有以下函数:
def print_twice(x):
for i in x: print(i)
for i in x: print(i)
Run Code Online (Sandbox Code Playgroud)
当我跑步时:
print_twice([1,2,3])
Run Code Online (Sandbox Code Playgroud)
或者:
print_twice((1,2,3))
Run Code Online (Sandbox Code Playgroud)
我得到了预期的结果:数字 1,2,3 被打印两次。
但是当我跑步时:
print_twice(zip([1,2,3],[4,5,6]))
Run Code Online (Sandbox Code Playgroud)
(1,4),(2,5),(3,6) 对仅打印一次。可能这是因为zip返回一个在一次传递后终止的生成器。
如何修改该函数print_twice以使其正确处理所有输入?
我可以在函数的开头插入一行:x = list(x)。但如果 x 已经是列表、元组、范围或任何其他可以迭代多次的迭代器,这可能会效率低下。有更有效的解决方案吗?