Хммм ... Вы уверены, что домашнее задание здесь не применимо? ;) Независимо от того:
Вам нужно не только разбить строки ввода, вам нужно преобразовать текстовые значения в числа.
Итак, если вы прочитали строку ввода в in_line, вы бы сделали что-то вроде этого:
...
row = [float(each) for each in in_line.split()]
rows.append(row) # assuming you have a list called rows
...
Когда у вас есть список строк, вам нужно получить столбцы:
...
columns = zip(*rows)
Затем вы можете просто перебирать каждую строку и каждый столбец, вызывая max ():
...
for each in rows:
print max(each)
for eac in columns:
print max(each)
Редактировать: Вот более полный код, показывающий, как открыть файл, выполнить итерацию по строкам файла, закрыть файл и использовать приведенные выше подсказки:
in_file = open('thefile.txt', 'r')
rows = []
for in_line in in_file:
row = [float(each) for each in in_line.split()]
rows.append(row)
in_file.close() # this'll happen at the end of the script / function / method anyhow
columns = zip(*rows)
for index, row in enumerate(rows):
print "In row %s, Max = %s, Min = %s" % (index, max(row), min(row))
for index, column in enumerate(columns):
print "In column %s, Max = %s, Min = %s" % (index, max(column), min(column))
Редактировать: Для блага новой школы, не используйте мою старую, рискованную обработку файлов. Используйте новую, безопасную версию:
rows = []
with open('thefile.txt', 'r') as in_file:
for in_line in in_file:
row = ....
Теперь у вас есть много гарантий, что вы случайно не сделаете что-то плохое, например, оставите этот файл открытым, даже если вы выбросите исключение во время чтения. Кроме того, вы можете полностью пропустить in_file.close()
, не чувствуя себя даже немного виноватым.