5

文字列を返すクラスインスタンスを使用しています。

このインスタンスを 2 回呼び出して、返された値をリストに収集しています。次に、.sort() を使用してこれら 2 つの文字列を並べ替えようとしています。ただし、そうすると、型が (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

どうもありがとう!

ジョージ

4

2 に答える 2

3

Pythonのドキュメントから:

7.sort()およびメソッドはreverse()、大きなリストをソートまたは反転するときに、スペースを節約するためにリストを変更します。これらは副作用によって動作することを思い出してもらうために、並べ替えられたリストまたは反転されたリストを返しません。

使用sorted():

list_sorted = list(sorted(list_of_strings))
于 2013-06-01T21:18:26.203 に答える
0

使用する必要がありますsorted()

list_sorted = list(sorted(list_of_strings))

あなたは今、呼び出しlist()None結果であるを.sort()呼び出しています。

于 2013-06-01T21:18:52.333 に答える