Как мне вернуть строку в кавычках из кортежа?
Вопрос
У меня есть кортеж строк, содержимое которых я хотел бы извлечь в виде строки, заключенной в кавычки, т. е.
tup=('string1', 'string2', 'string3')
when i do this
main_str = ",".join(tup)
#i get
main_str = 'string1, string2, string3'
#I want the main_str to have something like this
main_str = '"string1", "string2", "string3"'
Гат
Решение
", ".join('"{0}"'.format(i) for i in tup)
или
", ".join('"%s"' % i for i in tup)
Другие советы
Ну, один из ответов был бы:
', '.join([repr(x) for x in tup])
или
repr(tup)[1:-1]
Но это не совсем приятно.;)
Обновленный:Хотя, как уже отмечалось, вы не сможете контролировать, начинается ли результирующая строка с '" или '".Если это имеет значение, вам нужно быть более ясным, как и другие ответы здесь:
', '.join(['"%s"' % x for x in tup])
Вот один из способов сделать это:
>>> t = ('s1', 's2', 's3')
>>> ", ".join( s.join(['"','"']) for s in t)
'"s1", "s2", "s3"'
Не связан с StackOverflow