【问题标题】:How do I merge values from a list to a list of lists如何将列表中的值合并到列表列表中
【发布时间】:2019-09-26 05:18:22
【问题描述】:

我有一个列表和一个列表,看起来像这样

groups = ['1','2','3','4','5']

weeks = [['e','e','e','e','e','e','e'],
       ['o','o','m','m','m','o','o'],
       ['l','l','l','l','l','o','o'],
       ['m','m','m','m','m','o','o'],
       ['m', 'm','m','m','m','o','o']]

我可以使用此代码在几周内迭代 for 循环

for i in range(5):
    for j in range(7):
        roster = (weeks[i][j])
        display(roster)

但我希望我的输出是,

e 1
e 1
e 1 ... #for the first row in the weeks list then

o 2 
o 2
m 2 ... #for the next row of the  and so on till it reaches the last row.

【问题讨论】:

    标签: python-3.x for-loop iteration nested-lists


    【解决方案1】:

    您可以将groups 中的项目与weeks 中的子列表与zip 配对:

    for w, g in zip(weeks, groups):
        for i in w:
            print(i, g)
    

    这个输出:

    e 1
    e 1
    e 1
    e 1
    e 1
    e 1
    e 1
    o 2
    o 2
    m 2
    m 2
    m 2
    o 2
    o 2
    l 3
    l 3
    l 3
    l 3
    l 3
    o 3
    o 3
    m 4
    m 4
    m 4
    m 4
    m 4
    o 4
    o 4
    m 5
    m 5
    m 5
    m 5
    m 5
    o 5
    o 5
    

    【讨论】:

    • 你会推荐什么方法来解决这个问题是在组列表中的值多于或少于 5。
    • groups 中的值多于或少于 5 时,您的预期输出是什么?
    • 我意识到我不需要关于代码中更多或更少值的问题。但是我还有另一个问题,我如何将列表拆分为让我们说第三个列表,所以 ``` l 3 l 3 l 3 l 3 l 3 o 3 o 3 m 4 m 4 m 4 m 4 m 4 o 4 o 4 m 5 m 5 m 5 m 5 m 5 o 5 o 5 ``` 然后从头开始循环,我听说使用 % 是个好主意,但我不知道如何执行
    • 从头开始循环是什么意思?
    • from itertools import cycle, islice 然后for w, g in islice(cycle(zip(weeks, groups)), 2, 7):
    猜你喜欢
    • 2019-07-09
    • 2011-01-25
    • 1970-01-01
    • 2016-12-22
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多