পাইথনের একটি সাধারণ অ্যান্টিপ্যাটার্ন হ'ল +
লুপের সাহায্যে স্ট্রিংগুলির ক্রম সংযুক্ত করা । এটি খারাপ কারণ পাইথন ইন্টারপ্রেটারকে প্রতিটি পুনরাবৃত্তির জন্য একটি নতুন স্ট্রিং অবজেক্ট তৈরি করতে হবে এবং এটি চতুর্ভুজ সময় নিয়ে শেষ হবে। (সিপথনের সাম্প্রতিক সংস্করণগুলি কিছু ক্ষেত্রে আপাতদৃষ্টিতে এটি অনুকূল করে তুলতে পারে, তবে অন্যান্য বাস্তবায়ন করতে পারে না, সুতরাং প্রোগ্রামাররা এটির উপর নির্ভর করা থেকে নিরুৎসাহিত হন)) ''.join
এটি করার সঠিক উপায়।
যাইহোক, আমি এটি শুনেছি ( স্ট্যাক ওভারফ্লোতে এখানে অন্তর্ভুক্ত ) আপনার কখনও কখনও+
স্ট্রিং কনটেনটেশনের জন্য ব্যবহার করা উচিত নয়, পরিবর্তে সর্বদা ব্যবহার করা ''.join
বা বিন্যাসের স্ট্রিং ব্যবহার করা উচিত । আমি যদি বুঝতে পারি না যে আপনি কেবল দুটি স্ট্রিংকেই কাটাচ্ছেন তবে কেন এটি হচ্ছে। যদি আমার বোধগম্যতা সঠিক হয় তবে এটি চতুর্ভুজ সময় নিতে হবে না এবং আমি মনে করিa + b
যে ক্লিনার এবং আরও বেশি ''.join((a, b))
বা পড়ার চেয়ে বেশি হয় বা হয় না '%s%s' % (a, b)
।
+
দুটি স্ট্রিং সংমিশ্রনের জন্য ব্যবহার করা কি ভাল অনুশীলন ? বা এমন কোন সমস্যা আছে যা সম্পর্কে আমি অবগত নই?
+
দ্রুত বা ধীর? এবং কেন?
In [2]: %timeit "a"*80 + "b"*80
1000000 loops, best of 3: 356 ns per loop
In [3]: %timeit "%s%s" % ("a"*80, "b"*80)
1000000 loops, best of 3: 907 ns per loop
In [3]: %timeit "%s%s" % (a, b) 1000000 loops, best of 3: 590 ns per loop
In [4]: %timeit a + b 10000000 loops, best of 3: 147 ns per loop
__str__
। উদাহরণস্বরূপ আমার উত্তর দেখুন।