আমি কীভাবে পাইথনে দুটি অর্ডারযুক্ত তালিকার তুলনা করতে পারি?


105

আমার যদি একটি দীর্ঘ তালিকা থাকে: myList = [0,2,1,0,2,1]যে আমি দুটি তালিকায় বিভক্ত:

a = [0,2,1]
b = [0,2,1]

এই দুটি তালিকার তুলনা করে কীভাবে দেখতে পাব যে তারা উভয়ই সমান / অভিন্ন, একই বাধা যে তারা একই ক্রমে থাকতে হবে?

আমি দুটি তালিকাগুলি বাছাই করে দুটি তালিকার তুলনা করতে জিজ্ঞাসা করে প্রশ্নগুলি দেখেছি, তবে আমার নির্দিষ্ট ক্ষেত্রে আমি বাছাই করা তুলনা নয়, তবে অভিন্ন তালিকা তুলনা পরীক্ষা করছি।

উত্তর:


175

কেবল ক্লাসিক ==অপারেটরটি ব্যবহার করুন :

>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False

একই সূচকের উপাদানগুলি সমান হলে তালিকা সমান। অর্ডারটি তখন বিবেচনায় নেওয়া হয়।


3
এটি একটি অদ্ভুত তালিকা সহ নিম্নলিখিত ত্রুটিটি ফিরিয়ে দিতে পারে:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
অ্যালেক্স রেনল্ডস

@ অ্যালেক্সারিনোল্ডস যা বলেছে। আপনার সাথে পরীক্ষা করতে হবে all(arr1 == arr2)বা (arr1 == arr2).all()
জুলিও

10

আপনি যদি সেগুলি কেবল অভিন্ন কিনা তা পরীক্ষা করতে চান তবে a == bবিবেচনায় নেওয়া অর্ডার সহ আপনাকে সত্য / মিথ্যা দেওয়া উচিত।

আপনি যদি উপাদানগুলির তুলনা করতে চান তবে আপনি তুলনার জন্য অল্প ব্যবহার করতে পারেন

c = (numpy.array(a) == numpy.array(b))

এখানে সিতে 3 টি উপাদান সহ একটি অ্যারে থাকবে যা সমস্ত সত্য (আপনার উদাহরণের জন্য)। ইভেন্টে a এবং b এর উপাদানগুলি মেলে না, তবে সি এর সাথে সম্পর্কিত উপাদানগুলি মিথ্যা হবে।


এবং তারপরে সি.ল () সত্য কিনা তা দেখুন
পুলকিত বানসাল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.