2013-11-22 85 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

在你的代码,你行的列表(字符串) 。不是列表的列表。蟒蛇会高兴地计数空行......你检查过,以确保你没有任何空行吗? – mgilson

+0

'len(myLines)'会给你列表中的对象数量,无论它们是列表,字典还是字符串。 – jramirez

+0

你的代码工作得很好。按原样提供给我们文件。 – tMJ

回答

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 
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

相关问题