2012-01-14 3 views
2

Я только начал изучать Python ... Я пишу простую программу, которая будет принимать целые числа и содержать несортированный и отсортированный список. У меня возникла проблема с частью отсортированного списка ... Я получаю сообщение об ошибке при сравнении значений элементов в списке. Где я получаю ошибку, следующая строка: «if sortedList [sortcount]> sortedList [count]:". Я получаю «TypeError: unorderable types: list()> int()».Сравнение элемента в списке

Вот часть кода ... Я не уверен, что не так.

numberList = [] 
sortedList = [] 
count = 0 
sum = 0 

....(skip).... 

sortcount = 0 
sortedList += [ int(userInput) ] 
while sortcount < count: 
    if sortedList[sortcount] > sortedList[count]: 
     sortedList[count] = sortedList[sortcount] 
     sortedList[sortcount] = [ int(userInput) ] 
    sortcount+=1 
+0

Было бы полезно, чтобы увидеть код, где 'sortedList' строящийся. Кажется, что ваш список содержит список, который, я думаю, является ошибкой где-то в разделе '(skip)'. – Tim

+0

Простым способом обновления отсортированного списка будет 'sortedList.append (int (userInput)); sortedList.sort() '. –

ответ

5

, где вы:

sortedList[sortcount] = [ int(userInput) ] 

вы должны сделать:

sortedList[sortcount] = int(userInput) 

иначе вы добавить список на этой позиции и дать ошибку вы сказали.

Кстати, на первой линии до цикла, а лучше писать

sortedList.append(int(userInput)) 
+2

@JoelCornett: нет, JBernardo полностью верен. OP устанавливает sortcount-й элемент sortedList в [int (userInput)], который является списком. Здесь нет «добавления списка». – DSM

+0

Моя ошибка. Я искал неправильную часть кода: P –

1

Вы должны рассмотреть возможность использования:

sorted(numberList) 

генерировать свой отсортированный список. Многое, гораздо проще, не изобретать колесо.

Пример:

>>>unSorted = [3, 4, 1, 5] 
>>>unSorted 
[3, 4, 1, 5] 
>>>sortedList = sorted(unSorted) 
>>>sortedList 
[1, 3, 4, 5]