2013-12-12 24 views
5

Kullanıcıların 10 kelime girmesine izin vermek, sonra bunları alfabetik hale getirmek ve görüntülemek için tasarlanmış bir modülüm var. Sadece sıralama fonksiyonlarını kullanmak büyük harfle yazılan kelimeleri koyar, bu yüzden sort (liste, key = str.lower) kullanılır ancak çıktı hala yanlıştır.Sıralama ile büyük/küçük harfe duyarlı sıralama (liste, anahtar = 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() 

Ve bu emri verir: Kod ve hata, aşağıda [ 'Aardvark', 'kola', 'Masası', 'Zippy', 'zappy', 'Televizyon', 'genelev', ' kitap ',' Baba ',' köpek ']

Son olarak, İngilizce'yi çektim, alfabetik = s. Sözcüğümü eklemek veya değiştirmek için başka bir deyişle, alfabetik sıraya göre mi, yoksa küçük harf mi yoksa sermaye mi, yoksa sadece alfabeye dayalı olarak mı sıralanıyor?

Aardvark'ın, kitap, genelev, kok, baba, Masa, köpek, Televizyon, zappy, Zippy

cevap

5

sorteddöner sıralanmış listesi. Listede değişiklik yapmaz. Sen sıralanmış listesini saklamak gerekecek yerde piton On

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

Haklısınız, üzgünüm. SO – Anthon

+0

gitmeden önce kahve içmelisiniz Bu işe yarıyor! Teşekkürler! =) Çoktan verirdim, ama çok fazla bir noob'um, izin vermeyeceğim. Şimdi ... arama işlevimde, "aardvark" yazabilmeleri için bunu yapabilir miyim ve arama yaparken büyük harfle yazılmasalar bile Found'i döndürecekler mi? – nickg131

+0

Üzgünüz belirtmeliydim, 3.3.2 kullanıyorum, bu yüzden RedBaron tarafından verilen cevaplar işe yarıyor. – nickg131

1
sorted(words, key=cmp_to_key(locale.strcoll)) 
1
yöntemden (build-in liste)

list.sort()  

O sıralar kullanabilirsiniz

ve listeyi değiştirir

+0

Bu, büyük/küçük harf duyarlılığını bozmaz. 'list.sort()' küçük harflerden önce büyük harfler koyacaktır. 'sıralanmış (kelimeler, anahtar = str.lower)', bu açıdan üstündür, ancak çıktıyı yakalamanız gerekmemektedir. – Dannid