当尝试检索列表列表的长度时,我收到以下错误:“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。我可能错过了一些非常明显的东西,但我看不出我做错了什么,有人可以帮忙吗?
谢谢:)
答案 0 :(得分:4)
问题不在于列表,而在于len
。您可能使用名称len
作为变量之一。这就是为什么你不能调用函数len
,它被遮蔽了。
len
,list
,str
和others是内置函数。您应该避免使用相同名称命名变量。
答案 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