如何在python中获取列表列表的长度

时间:2013-11-22 17:41:14

标签: python list readlines

所以,如果我有一个名为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)没有显示列表的数量,这应该与'行数'。

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

5 个答案:

答案 0 :(得分:21)

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

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]

答案 1 :(得分: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

答案 2 :(得分:0)

如果您的列表名称为listlen,则只需输入len(listlen)即可。这将返回python中列表的大小。

答案 3 :(得分:0)

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

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

当我们运行以上程序时,它会产生以下结果 -

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

答案 4 :(得分:0)

您可以使用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