Подтвердить что ты не робот

Как получить длину списка списков в python

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

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) не показывает мне количество списков, которое должно быть таким же, как "количество строк".

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

4b9b3361

Ответ 1

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

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]

Ответ 2

"В приведенном выше текстовом файле есть 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

Ответ 3

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

Ответ 4

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

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

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

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

Ответ 5

Вы можете сделать это с помощью Reduce:

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [], [1, 2]]
print(reduce(lambda count, l: count + len(l), a, 0))
# result is 11