আমি পেয়েছি:
words = ['hello', 'world', 'you', 'look', 'nice']
আমি পেতে চাই:
'"hello", "world", "you", "look", "nice"'
পাইথন দিয়ে এটি করার সহজতম উপায় কী?
আমি পেয়েছি:
words = ['hello', 'world', 'you', 'look', 'nice']
আমি পেতে চাই:
'"hello", "world", "you", "look", "nice"'
পাইথন দিয়ে এটি করার সহজতম উপায় কী?
উত্তর:
আপনি একটি একক format
কল করতে পারেন
>>> words = ['hello', 'world', 'you', 'look', 'nice']
>>> '"{0}"'.format('", "'.join(words))
'"hello", "world", "you", "look", "nice"'
আপডেট: কিছু বেঞ্চমার্কিং (একটি 2009 এমবিপিতে সঞ্চালিত):
>>> 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: জ্যাকোডের মন্তব্য অনুসরণ করে, কাজ করবে map
তা নিশ্চিত করতে একটি যুক্ত করে join
, পাইথন ২.7.১২
>>> 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]
এফ স্ট্রিংস (পাইথন ৩.6++) এর সাথে @ জামিলাক জবাবের একটি আপডেট সংস্করণ, আমি এসকিউএল স্ক্রিপ্টের জন্য ব্যবহৃত স্ট্রিংয়ের জন্য ব্যাকটিক্স ব্যবহার করেছি।
keys = ['foo', 'bar' , 'omg']
', '.join(f'`{k}`' for k in keys)
# result: '`foo`, `bar`, `omg`'
repr
যা এই নির্দিষ্ট ক্ষেত্রে লিল হ্যাকি ব্যবহার করে তা উদ্ধৃতিগুলির সাথে পরিষ্কার হওয়ার বিপরীতে