সম্প্রতি আমি পাইথন 3 ব্যবহার করা শুরু করেছি এবং এতে এক্সরেঞ্জের ঘাটতি দেখা দেয়।
সাধারণ উদাহরণ:
1) পাইথন 2:
from time import time as t
def count():
st = t()
[x for x in xrange(10000000) if x%4 == 0]
et = t()
print et-st
count()
2) পাইথন 3:
from time import time as t
def xrange(x):
return iter(range(x))
def count():
st = t()
[x for x in xrange(10000000) if x%4 == 0]
et = t()
print (et-st)
count()
ফলাফল যথাক্রমে:
1) 1.53888392448 2) 3.215819835662842
তা কেন? মানে, এক্সরেঞ্জ কেন সরানো হয়েছে? এটি শিখার মতো দুর্দান্ত সরঞ্জাম। নতুনদের জন্য, ঠিক আমার মতোই, যেমন আমরা সকলেই এক পর্যায়ে ছিলাম। কেন এটি অপসারণ? কেউ কি আমাকে সঠিক পিইপি-তে নির্দেশ করতে পারে, আমি এটি খুঁজে পাচ্ছি না।
চিয়ার্স।
time
। আপনার পক্ষে সহজেই ব্যবহার করা সহজ এবং ভুল হওয়া এবং আপনার জন্য পরীক্ষাগুলির পুনরাবৃত্তি করা, আপনার মনে নেই timeit
এমন সমস্ত ধরণের জিনিসগুলির যত্ন নেয় বা এমনকি কীভাবে যত্ন নেবেন তাও জানেন (জিসি অক্ষম করার মতো), এবং এটি ব্যবহার করতে পারে হাজার গুণ ভাল রেজোলিউশন সহ ঘড়ি।
range
চালু করার জন্য সময়টি পরীক্ষা করছেন x%4 == 0
? কেন শুধু list(xrange())
বনাম পরীক্ষা করা নয় list(range())
, সুতরাং যতটা সম্ভব বাহ্যিক কাজ সম্ভব? (উদাহরণস্বরূপ, আপনি কীভাবে জানবেন যে 3.x x%4
আরও ধীরে ধীরে করছে না ?) এই বিষয়টির জন্য, আপনি কেন একটি বিশাল নির্মাণ করছেন list
, যার মধ্যে পুরো প্রচুর পরিমাণে মেমরি বরাদ্দ রয়েছে (যা ধীর হওয়া ছাড়াও অবিশ্বাস্যভাবে পরিবর্তনশীল) ?
iter(range)
অপ্রয়োজনীয়।
list(range(..))
। এটি পাইথন 2 এর সীমার সমতুল্য। বা এটি অন্য কোনওভাবেlist(range)
বলতে: এক্সারেঞ্জের নামকরণ করা হয়েছে পরিসীমা, কারণ এটি আরও ভাল ডিফল্ট; এটি উভয়ই রাখার দরকার ছিল না, যদি আপনার সত্যিই কোনও তালিকার দরকার হয় তবে করুন। ।
range
পাইথন 3.x এxrange
পাইথন ২.x থেকে is এটি আসলে পাইথন ২.x এরrange
সরানো হয়েছিল।