簡體   English   中英

如何動態迭代python中的以下字符串或通過用戶輸入?

[英]How to iterate following strings in python dynamically or by taking input from user?

這是問題所在:

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

如果都是字符串,則使用deque獲得不錯的rotate方法

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM