【问题标题】:How to get length of a list of lists in python如何在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 模块。

标签: python list readlines


【解决方案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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-04-06
            • 2022-11-14
            • 1970-01-01
            • 2012-12-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多