我正在使用一个返回字符串的类实例。
我调用了两次这个实例并收集返回值到一个列表中。然后我尝试使用。sort()对这两个字符串进行排序。然而,当我这样做时,它会抛出一个错误,说类型是(Nonetype -认为它是对象)。
我确实检查了类型(列表的元素),它返回类型"字符串"。我完全不知道发生了什么。基本上在空闲时,它说我有字符串在一个列表中。但在运行时抛出一个错误,指出NoneType(这些字符串的列表)不可迭代。
下面是一个例子:
list_of_strings = [class_method(args), class_method(another_args)] ## this instance returns string
print type(list_of_strings[0]) #prints type 'str'
错误:list_sorted = list(list_of_strings.sort())
TypeError: 'NoneType' object is not iterable
非常感谢!
乔治来自python文档:
7.
为了经济起见,sort()
和reverse()
方法就地修改列表在对一个大列表进行排序或反转时占用空间。提醒大家它们是通过副作用来操作的,它们不会返回排序或反转的结果列表。
使用sorted()
:
list_sorted = list(sorted(list_of_strings))
你应该使用sorted()
:
list_sorted = list(sorted(list_of_strings))
您现在对None
调用list()
,这是.sort()
调用的结果。