作者mikapauli (cablin)
看板Python
标题Re: [问题] 动态产生FOR回圈的办法
时间Sat Dec 24 00:30:39 2011
※ 引述《mikapauli (cablin)》之铭言:
: def product(lists):
: indices = range(len(lists))
: iters = [iter(l) for l in lists]
: values = [next(i) for i in iters]
: while True:
: yield values
: for i in indices:
: try:
: values[i] = next(iters[i])
: break
: except StopIteration:
: iters[i] = iter(lists[i])
: values[i] = next(iters[i])
: else:
: break
在这个例子忽然想到,我一直以来以为python的内建函式都是纯函式,也就是没有副作用
,但next似乎就是一个反例,为什麽不用.next() method就好? 想问一下Python标准库
中还有没有这类的函式? 另外有什麽方法可以让iterator直接reset吗?
--
「死ぬのっていや? 杀されたくない?」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.217.2