जवाबों:
आप एकल 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
देगा कि पायथन 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
.join(words)
साथ बदलें .join(map(str, words))
और हमें बताएं कि यह कैसे जाता है।
आप यह कोशिश कर सकते हैं:
str(words)[1:-1]
एफ स्ट्रिंग्स (अजगर 3.6+ के लिए) के साथ @jamylak उत्तर का एक अद्यतन संस्करण, मैंने एसक्यूएल स्क्रिप्ट के लिए उपयोग किए जाने वाले स्ट्रिंग के लिए बैकटिक्स का उपयोग किया है।
keys = ['foo', 'bar' , 'omg']
', '.join(f'`{k}`' for k in keys)
# result: '`foo`, `bar`, `omg`'
repr
जो इस विशिष्ट मामले में एक लील हैकी है जैसा कि उद्धरणों के साथ स्पष्ट होने का विरोध किया गया है