【发布时间】:2015-08-02 21:17:25
【问题描述】:
我想为搁置键值存储创建一个迭代器,它可以多次使用,但每次都以不同的顺序返回值。搁置迭代器以随机顺序返回值,但每次调用时顺序不会改变。这是一个例子:
导入搁置
# store key-value pairs with shelve
d = shelve.open('kv_store')
kv = {'a': 9, 'b': 8, 'c': 7, 'd': 6}
for key in kv.keys():
d[str(key)] = kv[key]
d.close()
# create iterator for key-value store
d = shelve.open('kv_store')
iterator = iter(d)
for i in iterator:
print(i)
d.close()
> b
> d
> a
> c
# repeat create iterator for key-value store
d = shelve.open('kv_store')
iterator = iter(d)
for i in iterator:
print(i)
d.close()
> b
> d
> a
> c
如何让搁置迭代器每次以不同的顺序返回值(例如,使用 random.shuffle)?
【问题讨论】:
标签: python iterator iterable shelve