2013-11-22 2 views
10

Итак, если у меня есть список myList, я использую len(myList), чтобы найти количество элементов в этом списке. Хорошо. Но как мне найти количество списков в списке?Как получить длину списка списков в python

text = open("filetest.txt", "r") 
myLines = text.readlines() 
numLines=len(myLines) 
print numLines 

В приведенном выше текстовом файле есть 3 строки из 4 элементов, разделенных запятыми. Переменная numLines выводится как «4», а не «3». Таким образом, len(myLines) возвращает количество элементов в каждом списке, а не длину списка списков.

При печати myLines[0] я получаю первый список, myLines[1] второго листа и т.д. Но len(myLines) не показывает мне количество списков, которые должны быть таким же, как «число строк».

Мне нужно определить, сколько строк считывается из файла.

+5

В своем коде, у вас есть список строк (строки) , а не список списков. И python будет счастливо подсчитывать пустые строки ... Вы проверили, чтобы у вас не было пустых строк? – mgilson

+0

'len (myLines)' даст вам количество объектов внутри этого списка независимо от того, являются ли они списками, dicts или строками. – jramirez

+0

Ваш код работает абсолютно нормально. Дайте нам файл как есть. – tMJ

ответ

1

«Приведенный выше текстовый файл имеет 3 строки из 4 элементов, разделенных запятыми. Переменная numLines выводит как« 4 », а не« 3 ». Таким образом, len (myLines) возвращает количество элементов в каждом списке, а не длина списка списков. "

Похоже, вы читаете в .csv с 3 строками и 4 столбцами. Если это так, то вы можете найти количество строк и строк с помощью метода .split():

text = open("filetest.txt", "r").read() 
myRows = text.split("\n")  #this method tells Python to split your filetest object each time it encounters a line break 
print len(myRows)    #will tell you how many rows you have 
for row in myRows: 
    myColumns = row.split(",") #this method will consider each of your rows one at a time. For each of those rows, it will split that row each time it encounters a comma. 
    print len(myColumns)   #will tell you, for each of your rows, how many columns that row contains 
15

Это сохраняет данные в список списков.

text = open("filetest.txt", "r") 
data = [ ] 
for line in text: 
    data.append(line.strip().split()) 

print "number of lines ", len(data) 
print "number of columns ", len(data[0]) 

print "element in first row column two ", data[0][1] 
0

, если имя вашего списка listlen то просто введите len(listlen). Это вернет размер вашего списка в python.

0

Метод len() возвращает количество элементов в списке.

list1, list2 = [123, 'xyz', 'zara'], [456, 'abc'] 
    print "First list length : ", len(list1) 
    print "Second list length : ", len(list2) 

Когда мы бежим выше программы, она дает следующий результат -

Первая длина списка: 3 Второй длина списка: 2

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