python - 我如何打印列表中的项目,直到它们达到一定数量的行

标签 python python-3.x

我正在做一个编码练习,你不记得一首歌的歌词,在打印一定数量的经文后,代码打印“我放弃”。我需要创建代码来一次又一次地逐行打印列表中的歌词,直到达到一定数量的行,然后打印“我放弃”。我被卡住了,试图弄清楚如何为每个变量打印 x 行,但我只弄清楚如何打印列表 x 次。

我已经想出如何打印 x 列表,但我不知道如何只打印变量中的 x 行。

lyrics = ["I wanna be your endgame", "I wanna be your first string",
          "I wanna be your A-Team", "I wanna be your endgame, endgame"]

lines_of_sanity = 6

for x in range(lines_of_sanity):
    for i in (lyrics):
        print(i)

它打印完整的歌词列表 6 次,但我需要它打印列表中的元素 6 次,然后继续直到诗歌完成并打印(“我放弃”)

给定变量的正确代码应该是:

I wanna be your endgame
I wanna be your first string
I wanna be your A-Team
I wanna be your endgame, endgame
I wanna be your endgame
I wanna be your first string
I wanna be your A-Team
I wanna be your endgame, endgame
I GIVE UP

最佳答案

听起来您想重复完整的歌词,至少要打印一些行。所以在这种情况下,您将打印完整的歌词两次。您可以使用以下方法计算数量:

times = math.ceil(6/len(lyrics)) 

这样做的一个好方法是使用 itertools.repeat连同 itertools.chain.from_iterable() .放在一起看起来像:

from itertools import chain, repeat
import math

lyrics = ["I wanna be your endgame", "I wanna be your first string",
          "I wanna be your A-Team", "I wanna be your endgame, endgame"]

lines_of_sanity = 6
times = math.ceil(lines_of_sanity/len(lyrics))

for l in chain.from_iterable(repeat(lyrics, times)):
    print(l)
print("I GIVE UP")

这将打印 2 个完整的经文然后放弃。

关于python - 我如何打印列表中的项目,直到它们达到一定数量的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56823334/

相关文章:

linux - 将 python 3 安装到 venv 中?

python - 每次调用时都会出现 Scapy AttributeError : 'module' object has no attribute '*'

python-3.x - 将逗号分隔的字符串转换为 pandas 中的列表

Python Flask jinja2 模板变量上下文。无法渲染变量

具有超过 20 个主题的 Python LDA Gensim 模型无法正确打印

python - 如何区分用户定义的类和 Python 3 中的内置类?

c# - Python3 中的字符串长度与文件和复制粘贴不同

python - CosmosDB 和 Python3 : how to query?

python - 将 Django 内置登录 View 重定向到以用户的 pk 作为参数的 URL

python - 如何将日志文件中的特定列提取到csv文件