बुलियन मूल्यों के साथ सूची पर अनुक्रमण करना ठीक काम करता है। हालांकि सूचकांक एक पूर्णांक होना चाहिए।बूलियन मूल्यों के साथ सूची में पायथन बूल और int तुलना और अनुक्रमण पर
>>> l = [1,2,3,4,5,6]
>>>
>>> l[False]
1
>>> l[True]
2
>>> l[False + True]
2
>>> l[False + 2*True]
3
>>>
>>> l['0']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> type(True)
<type 'bool'>
जब मैं करने की कोशिश की l['0']
यह त्रुटि है कि int प्रकार सूचकांकों में उम्मीद और कहा कि स्पष्ट है मुद्रित:
के बाद क्या मैं कंसोल में करने की कोशिश की है। फिर, 'True'
और होने के बावजूद, सूची पर अनुक्रमण ठीक काम करता है और स्वचालित रूप से इसे int प्रकार में परिवर्तित करता है और ऑपरेशन करता है।
कृपया बताएं कि आंतरिक रूप से क्या हो रहा है। मैं पहली बार प्रश्न पोस्ट कर रहा हूं, इसलिए कृपया मुझे किसी भी गलती के लिए क्षमा करें।
+1, मैंने कुछ सीखा। पता नहीं था 'बूल' 'int' का उप-वर्ग था। – nneonneo
मैं अभी भी इस पोस्ट के माध्यम से गया था [लिंक] http://stackoverflow.com/questions/3174392/is-it-pythonic-to-use-bools-as-ints/3175293#3175293) बहुत बहुत धन्यवाद। – Somesh