17

因此,如果我有一个名为 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)没有显示列表的数量,这应该与“行数”相同。

我需要确定从文件中读取了多少行。

4

5 回答 5

25

这会将数据保存在列表列表中。

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]
于 2013-11-22T19:07:34.367 回答
1

“上面使用的文本文件有 3 行,每行 4 个元素,用逗号分隔。变量 numLines 打印为 '4' 而不是 '3'。因此,len(myLines) 返回每个列表中的元素数,而不是列表的长度清单清单。”

听起来您正在阅读具有 3 行和 4 列的 .csv 文件。如果是这种情况,您可以使用 .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
于 2013-11-22T18:05:12.757 回答
1

你可以用 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
于 2019-07-01T07:41:42.483 回答
0

如果您的列表名称是,listlen则只需键入len(listlen). 这将在 python 中返回列表的大小。

于 2015-01-10T20:31:04.690 回答
-1

len() 方法返回列表中元素的数量。

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

当我们运行上面的程序时,它会产生以下结果 -</p>

第一个列表长度:3 第二个列表长度:2

于 2018-02-11T17:38:35.873 回答