質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

265閲覧

リスト自体を並び変えて出力させたい

GuMasi

総合スコア73

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/07/13 08:53

リストをsorted関数を使って昇順に並び替えは出力させる事はできたのですが、もとのリスト自体を出力させるコードを記述した場合この様な実行結果になってしまいます。
実行結果

test=[74,85,69,77,81].sort(reverse=True)

print("昇順は",(test),"です")

print("降順は",(test),"です")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

list.sortメソッドは対象のリストを「直接」変更し、返り値は常にNoneです。sorted関数は対象のリストはそのままにソートを行った結果のリストを新たに作成し、返り値として返します。

メソッドでやるとしたら、こう。

python

1test = [74,85,69,77,81] 2 3test.sort() 4print(test) # 昇順 5 6test.sort(reverse=True) 7print(test) # 降順

表示したいだけであれば、関数でやった方がシンプルです。

python

1test = [74,85,69,77,81] 2 3print(sorted(test)) # 昇順 4print(sorted(test, reverse=True)) # 降順

2回ソートするより、[::-1]reversedなどを使って昇順のものを反転して降順を作った方が効率的な可能性はありますが、そこまでは考慮していません。

投稿2019/07/13 08:58

編集2019/07/13 08:59
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2019/07/13 09:46

ありがとうございます、わかりやすく教えてくださり助かります。 メソッドを使った場合は複雑そうですね。hayatakaさんがおっしゃる通りsorted関数のがシンプルでいいですね。 確かに2回ソートするよりは::-1やreversedなど使った方が効率的ですね。 ちょっと自習のためにというのもありまして。 色々教えてくださり本当にありがとうございました。
guest

0

イメージ説明

python3

1>>> test=[74,85,69,77,81] 2>>> test1 = test.sort(reverse=True) 3>>> print(test1) 4None 5>>> print(test) 6[85, 81, 77, 74, 69] 7>>> test.sort() 8>>> print(test) 9[69, 74, 77, 81, 85] 10>>>

test.sort() は test 自体を変化させます。 sort した結果が返るわけではありません。

投稿2019/07/13 09:03

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2019/07/13 09:57

回答してくださりありがとうございます。 てっきりtest.sort()もソートした結果が返るのかと思っていたので誤解が解けました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問