为什么len(list)给出列表的类型错误?

时间:2017-05-20 17:49:10

标签: python python-2.7 list

这是我的代码的一部分:

k=int(raw_input(""))

for m in range(k):

q=[]
pseudolis=[]
l=map(int,raw_input("").split())
lenlist=map(int,raw_input("").split())
for i in range(l[1]):
    q.append(int(raw_input("")))
lenlist.sort()
for i in range(len(q)):
    pseudolis=list(lenlist)
    while(len(pseudolis)>0):
        for i in range(pseudolis.__len__()):
            if pseudolis[i]>=q[i]:
                continue
            else:
                flag=0
                break
        else:
            flag=1
        if flag:
            print pseudolis.__len__()
            break
        else:
            pseudolis[1]+=1
            pseudolis=pseudolis[1:].sort()

else:
    print len(pseudolis)

某点输出:

Traceback (most recent call last):
  File "C:/Python27/SNKDWNQL.py", line 66, in <module>
    while(len(pseudolis)>0):
TypeError: object of type 'NoneType' has no len()

我不知道伪码何时从列表类型转换为无类型。 我尝试使用各种方法来查找len。

1 个答案:

答案 0 :(得分:1)

在您尝试对pseudolis切片进行排序后,您的代码失败了:

pseudolis=pseudolis[1:].sort()

list.sort()不返回列表,返回None。将其拆分为:

pseudolis = pseudolis[1:]
pseudolis.sort()