【问题标题】:I want to loop this format using python我想使用python循环这种格式
【发布时间】:2022-11-14 00:54:49
【问题描述】:

我有3个清单 a = ["1", "2", "3", "4", "5", "6"] b = ['a', 'b', 'c'] c = ["13", "14"] 和 格式是: 1个 13 一个 2个 13 b 3个 13 C 4个 14 一个 5个 14 b 6个 14 C (下一行中的所有字符(stackoverflow 显示在一行中))

`如何获得上述格式

谢谢`

【问题讨论】:

  • 你首先需要清楚地描述这 3 个列表是如何变成那种格式的。都有些什么样的规矩?
  • 请使用您尝试过的代码更新您的问题。
  • 你需要更具体一点,数据应该怎么表示,是不是数组?还是只是输出?

标签: python loops nested


【解决方案1】:

您可以使用itertools.cycle 获取列表b 循环,并使用带有itertools.repeat 的适配器获取c 重复其项目:

from itertools import repeat, cycle

def repeat_elements(iterable, repeat_count):
    for element in cycle(iterable):
        yield from repeat(element, repeat_count)

a = ["1", "2", "3", "4", "5", "6"]
b = ['a', 'b', 'c']
c = ["13", "14"] 

for x,y,z in zip(a, cycle(b), repeat_elements(c, 3)):
    print(x,z,y)

按要求输出

请注意,此代码依赖于zipa用完元素时停止迭代。 cycle 和适配器repeat_elements 都会无限循环。

【讨论】:

    【解决方案2】:

    下面的代码将打印所需的序列,所有字符都在新行中。

    for i in c:
        for j in b:
            for k in a:
                print(k,i,j,sep='
    ')
    

    【讨论】:

    • 这不会产生所需的输出
    猜你喜欢
    • 1970-01-01
    • 2022-12-01
    • 2014-03-03
    • 2018-12-05
    • 1970-01-01
    • 2012-10-16
    • 2021-07-25
    • 1970-01-01
    • 2019-01-04
    相关资源
    最近更新 更多