2013-12-12 11 views
5

मेरे पास एक मॉड्यूल है जो उपयोगकर्ताओं को 10 शब्दों में प्रवेश करने की अनुमति देने के लिए डिज़ाइन किया गया है, फिर उन्हें वर्णित करें, और उन्हें प्रदर्शित करें। बस सॉर्ट फ़ंक्शंस का उपयोग करके पूंजीकृत शब्दों को पहले रखा जाता है, इसलिए मैंने सॉर्ट (सूची, कुंजी = str.lower) का उपयोग किया लेकिन आउटपुट अभी भी गलत है। कोड, और त्रुटि, नीचे:सॉर्ट (सूची, कुंजी = str.lower) के साथ केस असंवेदनशील सॉर्टिंग

def words_function(): 

    words = [input("Enter 10 words, one at a time: ") for i in range(10)] 
    sorted(words, key=str.lower) 
    print("Alphabetized, your words are: ", words) 

    userSearch = input("What word would you like to search for?") 

    if userSearch in words: 
     print("Found!") 
    else: 
     print("Not Found!")  

words_function() 

और यह इस आदेश आउटपुट: [ 'एर्डवार्क', 'कोक', 'डेस्क', 'व्यवसायिक', 'zappy', 'टेलीविजन', 'वेश्यालय', ' किताब ',' पिताजी ',' कुत्ता ']

जो मैंने पिछली बार अंग्रेजी ली थी, वर्णमाला = पी नहीं थी। मुझे उचित क्रमबद्ध क्रम में बाहर आने के लिए, मेरे शब्द को जोड़ने या बदलने के लिए और क्या करने की आवश्यकता है, अगर शब्द कम केस या पूंजी है, और केवल वर्णमालाकरण के आधार पर सॉर्टिंग की अनदेखी कर रहा है?

एर्डवार्क, पुस्तक, वेश्यालय, कोक, पिताजी, डेस्क, कुत्ते, टेलीविजन, zappy, व्यवसायिक

उत्तर

5

sortedरिटर्न अनुसार क्रमबद्ध सूची। यह सूची में सूची को संशोधित नहीं करता है। आप हल कर सूची संग्रहीत करना होगा कहीं

words = sorted(words, key=str.lower) 

अजगर पर 2,6

>>> words= ['Aardvark', 'coke', 'Desk', 'Zippy', 'zappy', 'Television', 'brothel', 'book', 'Dad', 'dog'] 
>>> sorted(words,key=str.lower) 
['Aardvark', 'book', 'brothel', 'coke', 'Dad', 'Desk', 'dog', 'Television', 'zappy', 'Zippy'] 
>>> words 
['Aardvark', 'coke', 'Desk', 'Zippy', 'zappy', 'Television', 'brothel', 'book', 'Dad', 'dog'] 
>>> words = sorted(words,key=str.lower) 
>>> words 
['Aardvark', 'book', 'brothel', 'coke', 'Dad', 'Desk', 'dog', 'Television', 'zappy', 'Zippy'] 
+0

आप सही हैं, क्षमा करें। SO – Anthon

+0

पर जाने से पहले कॉफी पीना चाहिए यह काम करता है! धन्यवाद! =) मैं उखाड़ फेंक दूंगा, लेकिन मैं बहुत ज्यादा नोब हूं, यह मुझे नहीं जाने देगा। अब ... मेरे खोज फ़ंक्शन में, क्या मैं इसे बना सकता हूं ताकि वे "आर्डवर्र्क" टाइप कर सकें और यह वापस लौटाएगा, भले ही इसे खोजते समय पूंजीकृत न हो? – nickg131

+0

क्षमा करें मुझे निर्दिष्ट होना चाहिए था, मैं 3.3.2 का उपयोग कर रहा हूं, इसलिए रेडबर्न द्वारा दिए गए उत्तर काम करते हैं। – nickg131

1

आप विधि (निर्माण में सूची)

list.sort()  

यह सॉर्ट करता उपयोग कर सकते हैं और परिवर्तन सूची

+0

यह केस-असंवेदनशील रूप से सॉर्ट नहीं करेगा। 'list.sort()' लोअर केस अक्षर से पहले पूंजी अक्षरों को रखेगा। 'सॉर्ट किया गया (शब्द, कुंजी = str.lower)' इस संबंध में बेहतर है, सिवाय इसके कि आपको आउटपुट कैप्चर करने की आवश्यकता है। – Dannid

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