为什么从类实例返回的字符串保持NoneType类型,即使IDLE说它是一个字符串



我正在使用一个返回字符串的类实例。

我调用了两次这个实例并收集返回值到一个列表中。然后我尝试使用。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()调用的结果。

最新更新