यहाँ समस्या का पता नहीं लग सकता है:
मैं एक सूची पारित कर रहा हूँ
vote_sort([("TOD",12),("Football",20),("Baseball",19),("Tennis",10)])
मुझे जो आउटपुट मिल रहा है
[('Baseball', 19), ('Football', 20), ('TOD', 12), ('Tennis', 10)]
वांछित आउटपुट:
[('Football', 20), ('Baseball', 19), ('TOD', 12), ('Tennis', 10)]
सहायता के लिए धन्यवाद!
def vote_sort(ls):
firstIndex = -1
for a, b in ls:
# EXTRACT THE VOTES = b
firstIndex += 1
for index in range(firstIndex+1, len(ls)):
# COMPARISON,SORT AND SWAP
if ls[index][1] > b:
temp = ls[index]
ls[index] = ls[firstIndex]
ls[firstIndex] = temp
print(ls)
vote_sort([("TOD",12),("Football",20),("Baseball",19),("Tennis",10)])
1 उत्तर
print(sorted(L, key=lambda k: k[1], reverse=True))
आउटपुट:
[('Football', 20), ('Baseball', 19), ('TOD', 12), ('Tennis', 10)]
संपादित करें:
आपने अपने कोड के बारे में पूछा: प्रमुख समस्या यह है कि आप बाहरी लूप का इलाज कैसे करते हैं। आंतरिक लूप में b अपनी स्थिति बदलता है, लेकिन आप इसके साथ तुलना करते रहते हैं। उदाहरण के लिए, दोनों लूपों के लिए पहले पुनरावृत्ति में b की स्थिति 0 है, firstIndex 0 है और अनुक्रमणिका 1 है। कल्पना कीजिए, आपने तब अदला-बदली की है, आंतरिक लूप के लिए अगले पुनरावृत्ति पर आप पाते हैं कि b स्थिति 1 पर है, firstIndex अभी भी 0, अनुक्रमणिका 2 है। फिर आप तत्वों 1 और 2 की तुलना करेंगे, लेकिन तत्वों 0 और 2 की अदला-बदली करेंगे। आपको बाहरी लूप में मान से नहीं, बल्कि अनुक्रमणिका द्वारा पुनरावृति करनी चाहिए। यदि आप अभी भी अपना खुद का सॉर्ट फ़ंक्शन लिखना पसंद करते हैं, तो मैं आपके कोड को आधार के रूप में लेने के लिए कुछ इस तरह का सुझाव दूंगा:
def vote_sort(ls):
for i in range(len(ls)):
for j in range(i+1, len(ls)):
if ls[i][1] > ls[j][1]:
tmp = ls[i]
ls[i] = ls[j]
ls[j] = tmp
print(ls[::-1])
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।