2017-02-26 2 views
-3

だから私はこれを持っている「のために」でリストをソートすることは可能ですどういうわけかChannel.groups.sort()を強制的に実行してからリストを反復処理することができますか?はそれが-loop(パイソン)

+0

あなたがここに達成するために何をしようとしていますか?コード行数を減らそうとしていますか? – GarethPW

+0

'sort'はその場所にソートし(' Channel.groups'を変更します)、 'None'を返します。代わりに 'sorted'を使用してください。すなわち 'ソートされた国(Channel.groups)の場合:... ' – jDo

+0

@MSeifert通常の配列です。 – Fredrik

答えて

0

sort()は、それが呼び出された元のリストを変更し、Noneを返します(これが原因でエラー'NoneType' object is not iterableが返されます)。

あなたはそのまま元のリストを離れ、新しいを返すものを使用する必要があります、sorted()のように、リストを並べ替え:

for country in sorted(Channel.groups)

+1

なぜそれがdownvotedされるか分からない。 AFAICT、それはちょうど問題に答える。 'sorted(Channel.groups)'がループの前に実行されていると言えるかもしれませんが、これはPythonのnoobieにとっては明らかではないかもしれません。 –

+0

私は投票しませんでしたが、2番目の例の 'for'ループの前に' sort() 'が実行されていないため、OPが「TypeError」がスローされたという結論に達しました。おそらく、そのXY問題をあなたの答えに直接書き込むことができます。 – jDo

+0

@DeepSpaceこれは、私がエラーを受けた理由と私の質問を解決する方法を非常によく説明しました。 – Fredrik