Как использовать цикл Python для генерации последовательности заголовков для фигур - PullRequest
0 голосов
/ 30 октября 2019

Если я хочу сгенерировать последовательность строк "layer 1", "layer 2", .... , "layer n", чтобы использовать в качестве заголовков для моих фигур, есть ли простой способ выполнить эту задачу с помощью цикла?

Спасибо,

1 Ответ

1 голос
/ 30 октября 2019

Используйте отформатированные строковые литералы или "f-strings" для краткости:

def label_yielder(n):
    for i in range(1,n+1):
        yield(f"label {i}")

# print them out
for x in label_yielder(5): 
    print(x)

# store them in a list
labels = [x for x  in label_yielder(5)]

Конечно, если вы уже используете цикл for для построения графика, вы можетеиспользуйте f-строку непосредственно в вызове plot (я предполагаю, что вы используете matplotlib.pyplot, должно также подходить для большинства других библиотек):

import matplotlib.pyplot as plt
from numpy.random import randint

for x in range(5):
    data = randint(low=1,high=10, size=(10,))
    plt.plot(range(10), data, label=f"label{x+1}")
    plt.legend()
...