#python
#python
Вопрос:
Я использую функцию соединения в Python для создания строки, например
a = [a, b, c, d]
b = ",".join(a)
print b
b = a,b,c,d
но я хочу
b = 'a','b','c','d'
есть ли способ сделать это, просто используя функцию join (или более короткий способ), а не выполняя
b = ""
for x in a:
b = "'%s'," % x
b = b[:-1]
Ответ №1:
b = ",".join(map(repr, a))
Также будет корректно экранировать символы внутри строки, что может быть полезно.
Ответ №2:
In [1]: a = ['a', 'b', 'c', 'd']
In [2]: print ','.join("'%s'" % x for x in a)
'a','b','c','d'
Ответ №3:
>>> b = ['a', 'b', 'c', 'd']
>>> print ','.join("'{0}'".format(s) for s in b)
'a','b','c','d'
Выражение внутри join() является выражением генератора.
Ответ №4:
b = "'" "','".join(a) "'"
🙂
Комментарии:
1. Хотя это работает правильно, это не самое логичное решение.
2. Согласен, но это, вероятно, наиболее экономичное по пространству и времени решение. И поскольку это действительно всего лишь однострочник, я бы не слишком беспокоился о концептуальной сложности…
Ответ №5:
a = ['a', 'b', 'c', 'd']
b = "','".join(a).join("''")