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

Posted

技术标签:

【中文标题】如何在python中获取列表列表的长度【英文标题】:How to get length of a list of lists in python 【发布时间】:2013-12-07 16:53:47 【问题描述】:

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

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

【问题讨论】:

在您的代码中,您有一个行(字符串)列表。不是列表列表。而且python会很高兴地计算空行...您检查以确保没有任何空行吗? len(myLines) 将为您提供该列表中的对象数量,无论它们是列表、字典还是字符串。 您的代码运行良好。按原样给我们文件。 只要print myLines,原因就清楚了。 Python 将不会自动分割从逗号文件中读取的文本。如果您希望发生这种情况,请使用 csv 模块。 【参考方案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) 返回的是每个列表中的元素数,而不是列表列表的长度。”

听起来您正在阅读具有 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

【讨论】:

【参考方案3】:

你可以用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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

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

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

【讨论】:

以上是关于如何在python中获取列表列表的长度的主要内容,如果未能解决你的问题,请参考以下文章

python 如何获取数组(列表)长度? len()

如何在 Python 中获取任意大小的空列表?

python计算两个列表后的长度

如何使用 Python 获取列表列表中最大列表的索引?

在 JSF 表达式语言中如何获取列表的长度?

如何从 Python 中不同长度的列表列表中创建数据框?