用枚举循环遍历多个列表?

问题描述 投票:-1回答:1

我目前正在将列表中的每个人分配到每月的特定星期。全年完成。

import itertools
import datetime

today = datetime.date.today()
today_str = str(today)
year,month,date = today_str.split('-')
# convert week of the year to a number
current_week = (datetime.date(int(year), int(month), int(date)).isocalendar()[1])

name_list1 = ["Kacey", "Cindy", "John"]

for num, item in enumerate(itertools.cycle(name_list1), 7):
    if num >= current_week:
        print(item)
        break

上面找到了第7周的人。...凯西

1. Kacey
2. Cindy
3. John
4. Kacey
5. Cindy
6. John
7. Kacey

我该如何使用2个名称列表?因此,将为list1中的每个名称分配一个星期,为list2中的每个名称分配一个星期?它们彼此完全独立。如果可能,我想在一个for循环中执行此操作。

name_list1 = ["Kacey", "Cindy", "John"]
name_list2 = ["Bob", "Julie", "Brian"]

在清单2中,鲍勃将是#7。

1. Bob
2. Julie
3. Brian
4. Bob
5. Julie
6. Brian
7. Bob

我可以为每个列表创建一个for循环,但是当处理多个列表时,它将变得非常难看。

python python-3.x itertools
1个回答
0
投票

我能够压缩它:

for num, (item1, item2) in enumerate(itertools.cycle(zip(name_list1, name_list2)), 7):
    if num >= current_week:
        print(item1 + " " + item2)
        break
© www.soinside.com 2019 - 2024. All rights reserved.