मैं अजगर में दो आदेशित सूचियों की तुलना कैसे कर सकता हूं?


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()
— एलेक्स रेनॉल्ड्स

@AlexReynolds ने क्या कहा। आपको all(arr1 == arr2)या के साथ परीक्षण करना होगा (arr1 == arr2).all()।
— जूलियो

10

यदि आप यह जांचना चाहते हैं कि क्या वे समान हैं या नहीं, a == bतो आपको खाते में दिए गए आदेश के साथ सही / गलत देना चाहिए।

यदि आप तत्वों की तुलना करना चाहते हैं, तो आप तुलना के लिए सुन्न का उपयोग कर सकते हैं

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

यहां, c में 3 तत्वों के साथ एक सरणी होगी, जो सभी सत्य हैं (उदाहरण के लिए)। A और b के घटना तत्व मेल नहीं खाते हैं, तो c में संबंधित तत्व गलत होंगे।


और फिर जांचें कि क्या c.all () सही है
— पुलकित बंसल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.