2015-11-19 13 views
5

नौसिखिया समानता के लिए एक समस्या का सामना कर परीक्षण। मेरे पास सूचियों की एक सूची है, राज्य []; प्रत्येक राज्य में एक्स है, इस विशिष्ट मामले में x = 3, बूलियन मान। मेरे कार्यक्रम में, मैं बूलियन मानों की एक सूची उत्पन्न करता हूं, जिनमें से पहला तीन राज्य के अनुरूप है [i]। मैं समानता के लिए परीक्षण राज्यों की सूची के माध्यम से लूप (उनमें से एक निश्चित रूप से सही है क्योंकि सभी संभावित बूलियन क्रमपरिवर्तन राज्यों में हैं, लेकिन समानता का पता नहीं चला है। कोई सुराग क्यों नहीं है, यहां कुछ कोड है जिसे मैंने परीक्षण करने के लिए संशोधित किया है:सूचियाँ ही लेकिन बराबर माना नहीं हैं? अजगर पर

temp1 = [] 
for boolean in aggregate: 
    temp1.append(boolean) 
if len(temp1) == len(propositions): 
    break 
print temp1 
print states[0] 
if temp1 == states[0]: 
    print 'True' 
else: 
    print 'False' 

इस मामले में, propisitons की लंबाई है 3. उत्पादन मैं इस कोड से मिलता है:

[True, True, True] 
(True, True, True) 
False 

मैं इस कोष्ठक में अंतर के साथ क्या करना तथ्य से कोई लेना देना कुछ है अनुमान लगा रहा हूँ कि राज्यों [0] एक सूची के भीतर एक सूची? चीयर्स है।

+3

'राज्यों [0]' एक टपल, नहीं एक सूची है। पाइथन में ब्रेस/पैरों का स्वाद बहुत मायने रखता है। –

+0

हाँ, मैं अब देखता हूं। मैंने राज्यों को पॉप्युलेट करने के लिए एक अंतर्निहित फ़ंक्शन का उपयोग किया था और यह नहीं पता था कि फ़ंक्शन ने टुपल बनाए हैं और सूचियां नहीं बनाई हैं; मुझे tuples के बारे में भी पता नहीं था। धन्यवाद, इसे ध्यान में रखेगा। – Bergy24

उत्तर

8

आप ग कर रहे हैं एक सूची[True, True, True]

बेशक

वे अलग हैं के खिलाफ एक टपल(True, True, True) omparing।

कास्टिंग की कोशिश अपने listtuple को चलते-चलते, तुलना करने के लिए:

temp1 = [] 
for boolean in aggregate: 
    temp1.append(boolean) 
if len(temp1) == len(propositions): 
    break 
print temp1 
print states[0] 
if tuple(temp1) == states[0]: 
    print 'True' 
else: 
    print 'False' 

या अपने tuplelist को चलते-चलते, तुलना करने के लिए कास्टिंग:

temp1 = [] 
for boolean in aggregate: 
    temp1.append(boolean) 
if len(temp1) == len(propositions): 
    break 
print temp1 
print states[0] 
if temp1 == list(states[0]): 
    print 'True' 
else: 
    print 'False' 

आउटपुट:

[True, True, True] 
(True, True, True) 
True 
+0

मैं पॉप्युलेट करने के लिए राज्यों [], नहीं पता था कि उनके द्वारा की गई tuples जा रहे थे एक अंतर्निहित समारोह का इस्तेमाल किया; मैंने पहले कभी भी tuples का उपयोग नहीं किया है, उन पर पढ़ना होगा, बहुत बहुत धन्यवाद। – Bergy24

+1

@ Bergy24 मुझे खुशी है कि मेरे जवाब में मदद मिली। अगर आप समस्या को हल करने में मदद करते हैं तो कृपया मेरा जवाब स्वीकार करना न भूलें :) –

संबंधित मुद्दे