Мой код не сортируется?

Мне нужно создать программу, которая будет: открывать файл, состоящий из разных наборов из трех чисел, а затем выводить наименьшее число для каждой строки. (Примечание: я должен сделать это без использования функции min()!)

Например, если файл говорит:

6,3,5
4,4,8
3,7,2
1,8,9
9,0,6

Следует напечатать:

3
4
2 
1
0

Мой код:

def smallest(*lowest):
    small_numbers = [lowest]
    small_numbers.sort()

def main():
    input_file = open("datanums.txt", "r")
    number_file = input_file.readlines()
    smallest(number_file)
    for i in range(len(number_file)):
        print number_file[i][0]
main()

Когда я запускаю его, кажется, что он печатает первое число для каждой строки в файле вместо того, чтобы печатать самое маленькое число в файле. Как я могу это исправить?

1 ответ

Решение

Нужны некоторые изменения, надеюсь, вы сможете разобраться в этом рабочем примере и посмотреть, что я сделал:

def smallest(numbers):
    newlist = numbers.split(',') #splits the incoming comma-separated array
    newlist.sort() #sorts alphabetically/numerical
    return newlist[0] #returns the first value in the list, now the lowest

def main():
    input_file = open("num.txt", "r")
    number_file = input_file.readlines()
    for i in range(len(number_file)):
        print smallest(number_file[i]).rstrip() #rstrip strips \n from output
main()
Другие вопросы по тегам