※ 引述《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