অন্যান্য উত্তরদাতারা উত্তর দেওয়ার ক্ষেত্রে সঠিক ছিল যে আপনি একটি জেনারেটর এক্সপ্রেশনটি আবিষ্কার করেছেন (এটির তালিকাটি বোঝার সাথে মিল থাকলেও পার্শ্ববর্তী বর্গাকার বন্ধনীগুলি বাদে) ation
সাধারণভাবে, জেনেক্সপ্স (তারা যেমন স্নেহভাজন হিসাবে পরিচিত) তালিকান বোধগমণের চেয়ে বেশি স্মৃতিশক্তি দক্ষ এবং দ্রুত।
যাইহোক, এটির ক্ষেত্রে ''.join()
, একটি তালিকা উপলব্ধি দ্রুত এবং আরও মেমরির উভয়ই দক্ষ। কারণটি হ'ল যোগদানের জন্য ডেটা দিয়ে দুটি পাস করা দরকার, সুতরাং এটির আসল তালিকার প্রয়োজন। আপনি যদি এটি দেন তবে তা অবিলম্বে এটির কাজ শুরু করতে পারে। আপনি যদি এর পরিবর্তে জিনপ এক্স দিয়ে থাকেন তবে জেন এক্সপ চালিয়ে ক্লান্তিতে চালিয়ে মেমরিতে নতুন তালিকা তৈরি না করা পর্যন্ত এটি কাজ শুরু করতে পারে না:
~ $ python -m timeit '"".join(str(n) for n in xrange(1000))'
1000 loops, best of 3: 335 usec per loop
~ $ python -m timeit '"".join([str(n) for n in xrange(1000)])'
1000 loops, best of 3: 288 usec per loop
Itertools.imap বনাম মানচিত্রের তুলনা করার সময় একই ফলাফলটি ধারণ করে :
~ $ python -m timeit -s'from itertools import imap' '"".join(imap(str, xrange(1000)))'
1000 loops, best of 3: 220 usec per loop
~ $ python -m timeit '"".join(map(str, xrange(1000)))'
1000 loops, best of 3: 212 usec per loop
join
এটি সম্ভবত সি তে লেখা হয়েছে এবং তাই তালিকা বোধগমণের চেয়ে অনেক দ্রুত চলে ... পরীক্ষার সময়!