Suppose I have a string

reminder_text = 'Не забудь прислать отчет за %s по проекту %s, пожалуйста.' 

Now arguments are passed to it % (date, project.name) , where project.name is a string. I want to make it so that instead of project.name , a list of project names is transferred, that is, project_names = [project1.name, project2.name, project3.name] and the final output of the line is:

 'Не забудь прислать отчет за %s по проектам project1.name, project2.name, project3.name, пожалуйста.' 

How can I achieve this?

    3 answers 3

    Try:

     text = 'Не забудь прислать отчет за %s по проектам %s, пожалуйста.' % (date, ', '.join(x.name for x in project_names)) 
       In [5]: project_names = ['project1.name', 'project2.name', 'project3.name'] In [6]: reminder_text = 'Не забудь прислать отчет за {} по проекту {}, пожалуйста.' In [7]: reminder_text.format('8.24.2018', ', '.join(project_names)) Out[7]: 'Не забудь прислать отчет за 8.24.2018 по проекту project1.name, project2.name, project3.name, пожалуйста.' 
         my_format = {"date": "24.08.2018", "project_names": ", ".join([u"№1", u"№2", u"№3"])} print 'Не забудь прислать отчет за {date} по проектам {project_names}, пожалуйста.'.format(**my_format) # Не забудь прислать отчет за 24.08.2018 по проектам №1, №2, №3, пожалуйста. 
        • In my opinion I gave a similar answer - Pavel Durmanov
        • you type quickly - Eugene Dennis
        • corrected to "differently" - Eugene Dennis