Используйте отформатированные строковые литералы или "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()