2015-12-07 3 views
5

max एक पुनरावृत्त पैरामीटर लेता है और पुनरावृत्त के लिए अधिकतम मूल्य वापस कर देगा। पूर्णांक के लिए यह स्पष्ट व्यवहार है क्योंकि यह केवल यह निर्धारित कर सकता है कि कौन सा नंबर सबसे बड़ा है।सेट की सूची में अधिकतम क्या करता है?

>>> max("hello world!") 
'w' 
>>> 'w' > 'r' 
True 
>>> max("Hello World!") 
'r' 
>>> 'W' > 'r' 
False 

हालांकि, पायथन के सेट की सूची के साथ क्या करता है: पात्रों के लिए यह बजाय कोषगत आदेश का उपयोग करता है? यह स्पष्ट नहीं है कि कैसे सेट का आदेश देने के काम करता है, हालांकि मेरा मानना ​​है कि यह सिर्फ लंबाई के साथ क्या करना है:

>>> set([1]) < set([5]) 
False 
>>> set([1]) > set([5]) 
False 
>>> set([1]) < set([1, 2]) 
True 
>>> set(range(5)) < set(range(7)) < set(range(1000)) 
True 

लेकिन वह क्या max मूल्य का उत्पादन नहीं है:

>>> max([set([1]), set([5]), set([2, 4, 7]), set([100000])]) 
set([1]) 
>>> max([set([]), set([11]), set([5]), set([2, 4, 7]), set([100000])]) 
set([11]) 
>>> max([set(range(45)), set(range(12)), set(range(100, 1260, 40))]) 
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]) 

कैसे पायथन इस मामले में max मूल्य निर्धारण ?

+0

मैं ठीक से पता नहीं है, लेकिन मैं यह 'एक Netwave

+4

की तुलना की जा सकती है लगता है (देखें [दस्तावेज़] (https: // डॉक्स। python.org/2/library/sets.html)) लेकिन मुझे 'अधिकतम()' के बारे में पता नहीं है। – Delgan

+0

@DanielSanchez सेट एक अप्रचलित प्रकार हैं (क्योंकि वे उत्परिवर्तनीय हैं) – khelwood

उत्तर

6

< पायथन में उचित सबसेट ऑपरेटर है। यह लंबाई की तुलना नहीं कर रहा है। क्योंकि प्रथम, द्वितीय का एक उचित सबसेट है, लेकिन बाद में set([11]) सेट में से किसी का एक उचित सबसेट नहीं है

https://docs.python.org/2/library/stdtypes.html#set.issubset

set([]) < set([11]) यह सच है। max का प्राकृतिक कार्यान्वयन < का उपयोग करता है, इसलिए set([11]) पर वापस लौटने के लिए यह आश्चर्यजनक नहीं है।

+0

आह, यह सही है! यदि मैं सेट समायोजित करता हूं तो यह अधिक स्पष्ट हो जाता है: '>>> अधिकतम ([सेट ([]), सेट ([11]), सेट ([11, 5]), सेट ([2, 4, 7]), सेट ([5, 11, 100000])]) 'सेट में सेट' ([100000, 11, 5]) ' – SuperBiasedMan

+0

* अधिकतम उपयोगों का प्राकृतिक कार्यान्वयन' <'* - वास्तव में यह ऑपरेटर से अधिक से अधिक का उपयोग करता है। > '([स्रोत] (https://hg.python.org/cpython/file/d8f48717b74e/Python/bltinmodule.c#l1427)) तो यह जांच कर रहा है कि सूची में अगला आइटम एक * सुपरसेट * है वर्तमान अधिकतम –

+0

@ajcr शायद मुझे "एक संभावित कार्यान्वयन" कहा जाना चाहिए था। मुझे पाइथन दस्तावेज़ों में 'अधिकतम' के वास्तव में कार्यान्वयन का कोई संकेत नहीं मिला, इसलिए मुझे लगता है कि'> 'की सीपीथन की पसंद काफी हद तक मनमानी है। –

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