Подтвердить что ты не робот

Присоедините список строк в python и оберните каждую строку в кавычки

У меня есть:

words = ['hello', 'world', 'you', 'look', 'nice']

Я хочу иметь:

'"hello", "world", "you", "look", "nice"'

Какой самый простой способ сделать это с помощью Python?

4b9b3361

Ответ 1

>>> words = ['hello', 'world', 'you', 'look', 'nice']
>>> ', '.join('"{0}"'.format(w) for w in words)
'"hello", "world", "you", "look", "nice"'

Ответ 2

вы также можете выполнить один вызов format

>>> words = ['hello', 'world', 'you', 'look', 'nice']
>>> '"{0}"'.format('", "'.join(words))
'"hello", "world", "you", "look", "nice"'

Обновление: некоторый бенчмаркинг (выполняется на 2009 mbp):

>>> timeit.Timer("""words = ['hello', 'world', 'you', 'look', 'nice'] * 100; ', '.join('"{0}"'.format(w) for w in words)""").timeit(1000)
0.32559704780578613

>>> timeit.Timer("""words = ['hello', 'world', 'you', 'look', 'nice'] * 100; '"{}"'.format('", "'.join(words))""").timeit(1000)
0.018904924392700195

Итак, кажется, что format на самом деле довольно дорого

Обновление 2: после комментария @JCode, добавив map, чтобы гарантировать, что join будет работать, Python 2.7.12

>>> timeit.Timer("""words = ['hello', 'world', 'you', 'look', 'nice'] * 100; ', '.join('"{0}"'.format(w) for w in words)""").timeit(1000)
0.08646488189697266

>>> timeit.Timer("""words = ['hello', 'world', 'you', 'look', 'nice'] * 100; '"{}"'.format('", "'.join(map(str, words)))""").timeit(1000)
0.04855608940124512

>>> timeit.Timer("""words = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] * 100; ', '.join('"{0}"'.format(w) for w in words)""").timeit(1000)
0.17348504066467285

>>> timeit.Timer("""words = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] * 100; '"{}"'.format('", "'.join(map(str, words)))""").timeit(1000)
0.06372308731079102

Ответ 3

Вы можете попробовать следующее:

str(words)[1:-1]

Ответ 4

>>> ', '.join(['"%s"' % w for w in words])