2012-04-04 14 views
9

की न्यूनतम और अधिकतम लगता है मैं इस तरह के रूप दो सूचियों है:अजगर दो सूचियों

l_one = [2,5,7,9,3] 
l_two = [4,6,9,11,4] 

... और मुझे संयुक्त दोनों सूचियों के न्यूनतम और अधिकतम मूल्य खोजने की जरूरत है। यही है, मैं एक मिनट और एक अधिकतम मूल्य उत्पन्न करना चाहता हूं।

मेरा सवाल है - इसे प्राप्त करने का सबसे आसान तरीका क्या है?

किसी भी मदद की बहुत सराहना की।

+1

क्या इसे होमवर्क टैग किया जाना चाहिए? –

उत्तर

25

यकीनन सबसे पठनीय रास्ता

max(l_one + l_two) 

या

min(l_one + l_two) 

है यह सूचियों, हालांकि कॉपी करेंगे, l_one + l_two के बाद से एक नई सूची बनाता है। नकल से बचने के लिए, तुम कर सकते हो

max(max(l_one), max(l_two)) 
min(min(l_one), min(l_two)) 
+0

तो पहला व्यक्ति सूची की प्रतिलिपि बनायेगा और अधिकतम (स्मृति पर अधिक महंगा) पता लगाएगा। लेकिन दूसरी विधि के बारे में क्या, क्या यह अधिक तेज़ गति से लेता है? – George

+0

@ जॉर्ज: नहीं, यह भी तेज़ है। एकमात्र नुकसान यह है कि यह पहले के रूप में उतना ही अच्छा नहीं पढ़ता है। –

+0

क्या आप मुझे संसाधनों के बारे में बता सकते हैं या प्रदान कर सकते हैं ताकि मैं इसके पीछे तर्क सीख सकूं? क्या मुझे इसे एक नए प्रश्न के रूप में पूछना चाहिए? या यह बहुत छोटा/कार्यान्वयन पर निर्भर करता है। – George

1

आप उन्हें गठजोड़ कर सकते हैं और उसके बाद मिनट या कॉल अधिकतम:

>>> l_one = [2,5,7,9,3] 
>>> l_two = [4,6,9,11,4] 
>>> min(l_one + l_two) 
2 
>>> max(l_one + l_two) 
11 
10

एक और तरीका टाल कि सूचियों

>>> l_one = [2,5,7,9,3] 
>>> l_two = [4,6,9,11,4] 
>>> 
>>> from itertools import chain 
>>> max(chain(l_one, l_two)) 
11 
>>> min(chain(l_one, l_two)) 
2 
1

अगर आप सिर्फ राशि को कॉपी आपके जैसे सूचियां, यह काम करती है, यहां तक ​​कि विभिन्न आकारों से सूचियों के साथ:

min(min([i1,i2,i3])) 

तुम भी एक होशियार समाधान जो विभिन्न numpy सरणी के साथ काम करता है हो सकता है:

import numpy as np 
i1=np.array(range(5)) 
i2=np.array(range(4)) 
i3=np.array(range(-5,5)) 
np.min(np.concatenate([i1,i2,i3])) 
0

आप अधिकतम या दो lists.I से न्यूनतम मान चुनने के लिए लगता है कि निम्नलिखित काम करेंगे चाहते हैं:

from numpy import maximum 
result = maximum(l_one,l_two) 

यह दो तत्वों में प्रत्येक तत्व की तुलना करने के बाद अधिकतम मूल्य लौटाएगा।

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