python - क्या कुछ ए, बी ऐसे हैं जो अधिकतम(ए, बी)!=अधिकतम(बी, ए) हैं?




python-3.x (2)

यह सभी मानदंडों को पूरा करता है:

>>> max(1.0, float("nan"))
1.0

>>> max(float("nan"), 1.0)
nan

ऐसा इसलिए है क्योंकि किसी भी तुलना के अलावा != या float("nan") हमेशा गलत है।

अधिक आम तौर पर, हमारे पास max(a, b) != max(b, a) जब max(a, b) != max(b, a) का प्रकार (एस) कुल आदेश प्रदान नहीं करता है। जैसा कि डैनियल मेसेजो बताते हैं, सेट के पास भी यह संपत्ति है। सेट के लिए < अर्थ है 'सख्त उपसमूह', लेकिन {1, 2} और {3, 4} न तो दूसरे का सख्त उपसमूह है, इसलिए:

>>> max({1, 2}, {3, 4})
{1, 2}

>>> max({3, 4}, {1, 2})
{3, 4}

यह एक तकनीकी रूप से max(a, b) != max(b, a) क्योंकि 1 == True , लेकिन अभी भी एक नमूदार अंतर है:

>>> max(True, 1)
True

>>> max(1, True)
1

अजगर 3.x में, क्या कुछ a , b ऐसे हैं जो max(a, b) != max(b, a) ?

a और b एक अंतर्निहित अजगर प्रकार का होना चाहिए और इसमें कोई रूपांतरण नहीं होना चाहिए।

b और b का प्रकार हो सकता है: num, float, bool, list, tuple ...

उदाहरण:

a = 1 # Correct
a = [1, 2] # Correct
a = float('nan') # Wrong

documentation अनुसार, सेट पर max का उपयोग करने से अपरिभाषित परिणाम उत्पन्न होते हैं:

तदनुसार, सेट उन कार्यों के लिए उपयुक्त तर्क नहीं हैं जो कुल ऑर्डरिंग पर निर्भर करते हैं (उदाहरण के लिए, न्यूनतम (), अधिकतम (), और सॉर्ट किए गए () इनपुट के रूप में सेट की सूची दी गई अनिर्धारित परिणामों का उत्पादन करते हैं)।

यहाँ एक उदाहरण है,

a = {1, 2}
b = {2, 3}
print(max(b, a) != max(a, b))

उत्पादन

True




python-3.x