Python

2016-04-03 41 views
0

'de bir tamsayı listesi var Yeni başlayan bir programcıyım ve bir egzersiz yapmaya çalışıyorum. Bir tam sayı listesi sıralamak istiyorum, ancak kodumu her çalıştırdığımda liste sıralanmaz. Bunu sıralanmış() veya .sort() ile birkaç farklı şekilde denedim, ancak yardımlar yardımcı görünüyor.Python

def main(): 

    _list1_ = [] 
    _list2_ = [] 

    print("Enter random numbers and enter Q to quit: ") 
    userInput1 = input("") 
    while userInput1.upper() != "Q": 
     _list1_.append(int(userInput1)) 
     userInput1 = input("") 

    print("Enter random numbers and enter Q to quit:") 
    userInput2 = input("") 
    while userInput2.upper() != "Q": 
     _list2_.append(int(userInput2)) 
     userInput2 = input("") 

    sorted(_list1_) 
    sorted(_list2_) 

    print(_list1_) 

main() 

Teşekkürler!

cevap

4

sorted() listeyi listede sıralamıyor.

_list1_ = sorted(_list1_) 
_list2_ = sorted(_list2_) 

Her zaman fonksiyonları nasıl çalıştığını bir anlayış elde etmek belgeleri okumak için iyi bir fikirdir: Eğer böyle bir şey için 2 sorted() aramaları değiştirmeniz gerekecektir, böylece sıralı listesini döndürür. İşte https://docs.python.org/2/library/functions.html#sorted

+4

:

_list1_.sort() 

bu şekilde görünecektir sort (benim tercih edilen yöntem) kodunuzu kullanmak için olsaydı '_list_1.sort()' ve '_list2_.sort()' yerine getirecektir. Bunu belirtmek güzel. – idjaw

+0

Özel olarak "sıralanmış" yeni bir liste ayırdığı için, fazladan bellek gerekiyor. – saeedgnu

0
sorted(_list1_) 

LIST1 sıraladıktan sonra listesini döndürür sıralanmış, O LIST1 sıralamak değil için dokümanlar olduğunu. böylece

print(sorted(_list1_)) 

yazmak ya sort yerde sıralama yapar oysa sıralı listesini döndürür

_list1_ = sorted(_list1_) 
2

sorted gibi Liste1 için sıralı LIST1 atayın.

Yani ya yapabilirdi:

_list1_ = sorted(_list_) 

ya:

def main(): 

    _list1_ = [] 
    _list2_ = [] 

    print("Enter random numbers and enter Q to quit: ") 
    userInput1 = input("") 
    while userInput1.upper() != "Q": 
     _list1_.append(int(userInput1)) 
     userInput1 = input("") 

    print("Enter random numbers and enter Q to quit:") 
    userInput2 = input("") 
    while userInput2.upper() != "Q": 
     _list2_.append(int(userInput2)) 
     userInput2 = input("") 

    _list1_.sort() 
    _list2_.sort() 

    print(_list1_) 

main()