2017-06-28 8 views
-1

奇数が最初に来て、偶数が最後にくるようなソートされた数字のリストを返したいと思います。リスト内包表記で "and"を使用して2つの条件を結合するにはどうすればよいですか?

例:my_sort([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) =>[1, 3, 5, 7, 9, 2, 4, 6, 8]

私のソリューションは、空のリストを返しています。

+1

数字は1 mod 2と0 mod 2とすることができます – asongtoruin

+1

これはリストの理解とは関係ありません。どのように 'x%2 == 1とx%2 == 0'が真であるか、リストの理解の内側か外側か? – DeepSpace

答えて

2

あなたのコードが何をしていると誤解していますか?

sortd_lst = sorted([xfor x in lst if x % 2 == 1 and x % 2 == 0]) 

数が両方偶数と奇数の場合はあなたのコードは明らかに不可能である、チェックしています。したがって、空のリストが得られます。これらの条件を別々に確認する必要があります。ここで

は何をしたいです:

sortd_lst = [*sorted(x for x in lst if x % 2 == 1), *sorted(x for x in lst if x % 2 == 0)] 

これは、それぞれ奇数と偶数の二つの別々のソートされたリストを作成して、あなたのsortd_lstにそれらを解凍します。

+0

**開梱**に関する調査を行います。一度私はこの解決策を持っていた、それはネストされたリストを返していた。私は遠くまで私はものを試してみると思った。 –

+0

_ "あなたのコードは、数値が偶数と奇数の両方であるかどうかをチェックしています。これは明らかに不可能です。"したがって、OP関数は空のリストを返します。 – gboffi

関連する問題