এটি একটি বরং ধারণামূলক প্রশ্ন, তবে আমি আশা করছিলাম যে আমি এই সম্পর্কে কিছু ভাল পরামর্শ পেতে পারি। আমি যে প্রচুর প্রোগ্রামিং করি তা হ'ল ( নুমপি ) অ্যারে দিয়ে; আমাকে প্রায়শই দুই বা ততোধিক অ্যারেতে আইটেমগুলি মিলাতে হয় যা বিভিন্ন আকারের হয় এবং প্রথম যে জিনিসটিতে আমি যাই সেটি হ'ল লুপ বা আরও খারাপ, নেস্টেড ফর লুপ। আমি যতটা সম্ভব ফোর-লুপগুলি এড়াতে চাই, কারণ এগুলি ধীর (কমপক্ষে পাইথনে)।
আমি জানি যে NumPy এর সাথে অনেক কিছুর জন্য প্রাক-সংজ্ঞায়িত কমান্ড রয়েছে যা আমার কেবল গবেষণা করা দরকার তবে আপনি (আরও অভিজ্ঞ প্রোগ্রামার হিসাবে) আপনার মনে একটি সাধারণ চিন্তার প্রক্রিয়া রয়েছে যা আপনাকে কিছু পুনরুক্তি করতে হবে?
তাই আমার প্রায়শই এরকম কিছু থাকে যা ভয়াবহ এবং আমি এড়াতে চাই:
small_array = np.array(["one", "two"])
big_array = np.array(["one", "two", "three", "one"])
for i in range(len(small_array)):
for p in range(len(big_array)):
if small_array[i] == big_array[p]:
print "This item is matched: ", small_array[i]
আমি জানি যে এটি বিশেষত অর্জন করার জন্য বিভিন্ন ধরণের উপায় রয়েছে তবে আমি যদি চিন্তা করি তবে একটি সাধারণ পদ্ধতিতে যদি এটি বিদ্যমান থাকে তবে আমি আগ্রহী।
I want to avoid for-loops as much as possible because they are slow (at least in Python).
মনে হচ্ছে আপনি এখানে ভুল সমস্যাটি সমাধান করছেন। আপনার যদি কোনও কিছুর উপরে পুনরাবৃত্তি করতে হয় তবে আপনাকে কোনও কিছুর উপরে পুনরাবৃত্তি করতে হবে; আপনি যে পাইথনটি ব্যবহার করেন তা বিবেচনা না করে আপনি একইরকম পারফরম্যান্স গ্রহণ করবেন। যদি আপনার কোডটি ধীর হয় তবে এটি আপনার for
লুপ নেই বলে নয় ; এর কারণ আপনি অপ্রয়োজনীয় কাজ করছেন বা পাইথন সাইডে কাজ করছেন যা সি দিকে করা যেতে পারে। আপনার উদাহরণে আপনি অতিরিক্ত কাজ করছেন; আপনি দুটির পরিবর্তে একটি লুপ দিয়ে এটি করতে পারতেন।