我有一个函数,它接受一个字典值或一个字符串,创建一个双端队列,并按该值的索引对其进行排序,然后返回一个循环对象。另一个函数接受dict并将其传输到第一个函数对象中,而在while True循环中创建另一个dict,该dict具有“Position”键,并且值必须是创建的循环对象中的下一个元素,并返回该dict,但每次都必须是下一个元素循环对象。
初始字典data = {'position': 'D'}
第一个函数创建并返回一个cycle()对象。
def cycle_(deq_):
deq = collections.deque(['D', 'E', 'L'])
idx = deq.index(deq_)
deq.rotate(-idx)
cycle = itertools.cycle(deq)
return cycle
第二个函数,创建最终的dict,每次都必须修改并返回它。
def modification(data):
dump = cycle_deq(data['position'])
while True:
data_2 = {
'position': next(dump)
}
return data_2
1条答案
按热度按时间kmpatx3s1#
modification
函数应该使用yield
而不是return
。在当前形式中,while-loop只能运行一次,然后函数以return
终止。