首页 > 解决方案 > 如何动态地迭代python中的以下字符串或从用户那里获取输入?

问题描述

这是问题所在:

number_of_batches = 8
number_of_dishes = 6

batch_names = batch_1 , batch_2, batch_3,batch_4, batch_5, batch_6, batch_7,batch_8
dish_names = dish_1, dish_2, dish_3, dish_4, dish_5, dish_6

预期输出:

batch_1: dish_1, dish_2, dish_3, dish_4, dish_5, dish_6
batch_2: dish_2, dish_3, dish_4, dish_5, dish_6, dish_1
batch_3: dish_3, dish_4, dish_5, dish_6, dish_1, dish_2
batch_4: dish_4, dish_5, dish_6, dish_1, dish_2, dish_3
batch_5: dish_5, dish_6, dish_1, dish_2, dish_3, dish_4
batch_6: dish_6, dish_1, dish_2, dish_3, dish_4, dish_5
batch_7: dish_1, dish_2, dish_3, dish_4, dish_5, dish_6
batch_8: dish_2, dish_3, dish_4, dish_5, dish_6, dish_1

标签: pythonloopslogic

解决方案


如果都是字符串,使用 adeque获取 nicerotate方法

from collections import deque

number_of_batches = 8
number_of_dishes = 6
batches = [f"batch_{i + 1}" for i in range(number_of_batches)]
dishes = deque(f"dish_{i + 1}" for i in range(number_of_dishes))

for batch in batches:
    print(batch, ":", *dishes)
    dishes.rotate(-1)
batch_1 : dish_1 dish_2 dish_3 dish_4 dish_5 dish_6
batch_2 : dish_6 dish_1 dish_2 dish_3 dish_4 dish_5
batch_3 : dish_5 dish_6 dish_1 dish_2 dish_3 dish_4
batch_4 : dish_4 dish_5 dish_6 dish_1 dish_2 dish_3
batch_5 : dish_3 dish_4 dish_5 dish_6 dish_1 dish_2
batch_6 : dish_2 dish_3 dish_4 dish_5 dish_6 dish_1
batch_7 : dish_1 dish_2 dish_3 dish_4 dish_5 dish_6
batch_8 : dish_6 dish_1 dish_2 dish_3 dish_4 dish_5

推荐阅读