2013-12-16 3 views
2

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

vrt = [[1,3,3,8,5,4,2,1,5,6], 
     [2,4,3,3,6,8,1,3,5,6],  
     [4,5,6,4,7,4,3,6,4,7], 
     [2,8,7,0,0,7,4,7,8,0], 
     [2,3,4,7,0,8,7,6,3,8], 
     [3,7,9,0,8,5,3,2,3,4], 
     [1,5,7,7,6,4,2,3,5,6], 
     [0,6,3,3,6,8,0,6,7,7], 
     [0,1,3,2,8,0,0,0,0,0], 
     [3,1,0,3,6,7,0,5,3,1], 
     [1,3,5,7,0,8,6,5,3,1], 
     [3,6,3,1,3,5,8,7,5,1], 
     [4,3,6,0,0,8,4,7,5,3], 
     [3,5,6,8,6,3,1,3,5,2]] 

И мне нужно, чтобы написать функцию, которая будет читать Evey строку, сумма всех чисел в каждой строке и возвращает результат каждая строка как новый список, в случае этого конкретного результата списка будет [38, 41, 50...42], поэтому просто сумма каждого списка.

До сих пор я старался делать это как этот

def po_vrstah(vrt): 
    s = [] 
    line = vrt.read().split('\n') 
    vsota = sum(line) 
    s.append(vsota) 
    return s 

Так что я сделал небольшое исследование, и, видимо, те, читать и раскол ('\n') могут быть использованы только чтение файлов я думаю?

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

+0

yea, вы правы '' \ n'' является «новой линией», поэтому, например, 'print (« line1 \ nline2 »)' будет печатать строку «line1» в первой строке и «строка 2» на второй строке. его приличный способ разделить строки иногда. – TehTris

ответ

7

Это гораздо проще:

>>> print map(sum, vrt) 
+0

Так просто ... Я бы никогда об этом не думал. Большое спасибо! – Doe

5

Используйте список понимание:

[sum(lst) for lst in vrt] 

или, если вы используете Python 2, map() могут быть также использованы:

map(sum, vrt) 

Вы правы, что разделение на строки новой строки полезно только для строк (будь то чтение из файла или другого мудрый).

1

это работает:

def po_vrstah(vrt): 
    return [sum(line) for line in vrt] # this is a list comprehension 

это присваивает каждый список в ВРТ переменной линии, один за другим. Переменные в каждом списке затем суммируются суммой(), и результат добавляется к нашему списку последовательно. Чтобы узнать о списках, посмотрите here

Смежные вопросы