Python:检索列表列表的长度

时间:2013-12-13 00:26:25

标签: python typeerror

当尝试检索列表列表的长度时,我收到以下错误:“TypeError:'float'对象不可调用”

我的代码看起来像这样:

list = []    
for line in text:
    regex = re.search("(.*) (.*) (.*)")
    a = float(regex.group(1))
    b = float(regex.group(2))
    c = float(regex.group(3))
    list.append([a, b, c])

newlist = []
for entry in list:
    if entry[0] < 10:
         newlist.append(entry)

if len(newlist) >1:
    do something

生成列表清单('新列表')没有任何问题,例如 [[1.0,2.0,3.0],[4.0,5.0,6.0],[7.0,8.0,9.0]]

这绝对是一个列表,即类型'列表'

但是当我尝试使用时:

len(list)

我刚收到TypeError。我可能错过了一些非常明显的东西,但我看不出我做错了什么,有人可以帮忙吗?

谢谢:)

2 个答案:

答案 0 :(得分:4)

问题不在于列表,而在于len。您可能使用名称len作为变量之一。这就是为什么你不能调用函数len,它被遮蔽了。

lenliststrothers是内置函数。您应该避免使用相同名称命名变量。

答案 1 :(得分:0)

该程序适用于我,检查输入格式

完整计划:

#!/usr/bin/python

import re

mylist = []
for line in ("0.1 0.2 0.3", "20 0.3 0.1", "0.2 0.1 5"):
    regex = re.search("(.*) (.*) (.*)", line)
    a = float(regex.group(1))
    b = float(regex.group(2))
    c = float(regex.group(3))
    mylist.append([a, b, c])

newlist = []
for entry in mylist:
    if entry[0] < 10:
         newlist.append(entry)

if len(newlist) > 1:
    print newlist

if len(mylist) > 1:
    print mylist