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

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

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

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

Q&A

3回答

2503閲覧

複数行の並び替えがわからない

pmldm

総合スコア6

Python 3.x

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

1グッド

0クリップ

投稿2018/06/12 16:36

pythonでの複数行の並び替えの仕方が分かりません。


5←行数n
3
5
6
7
2

これを小さい頃に並び替えて、

2
3
5
6
7

と出力したいです。
行数をnとした場合、自分が考えたコードが

n=int(input())
for i in range(n):
i=input()
print(i)

です。

ここから先が分かりません。並び替えようとソートしようとしてもエラーになってしまいます。
だれか助けてください。

hayataka2049👍を押しています

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

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

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

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

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

guest

回答3

0

python

1# 初回,入力したい数字 2# 2回め以降は登録したい数字 3 4l=[] 5[l.append(int(input())) for _ in range(int(input()))] 6# 並び替え 7l=sorted(l) 8# 表示 9[print(i) for i in l]

皆がやってる通りにリストに入れた方が分かりやすいと思います。
sortではなく、sortedを使ってます。

蛇足

python

1# 初回,入力したい数字 2# 2回め以降は登録したい数字 3 4l=[] 5[l.append(int(input())) for _ in range(int(input()))] 6 7#改行 8print() 9 10# 並び替え 昇順 11l=sorted(l) 12 13#改行 14print() 15 16# 表示 17[print(i) for i in l] 18 19#改行 20print() 21 22# 並び替え 降順 23l=sorted(l,reverse=True) 24 25# 表示 26[print(i) for i in l] 27

投稿2018/06/13 04:07

Untitled_Sample

総合スコア192

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

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

hayataka2049

2018/06/13 04:17

内包表記を使うのならあえて外のリストにappendしなくても良いのではないでしょうか
Untitled_Sample

2018/06/13 04:44

l=[int(input()) for _ in range(int(input()))]でも可能ですが、命令文のappendが有ると分かりやすいと思いましたので、つけました。 list.insert(0, 1)など、 リスト.命令文()の形式を多様してるので、その影響だと思います。 理由が無い場合は、リスト結合の extend()も+とは個人的に書かない方なので好みだと思います。
LouiS0616

2018/06/13 04:52

@Sample_Test さん それなら内包表記を利用する意味がないような。 普通のfor文じゃダメなんですか?
hayataka2049

2018/06/13 04:57

LouiS0616さんが先に書いてくれましたが、生成されたリスト等を利用せず、単なる繰り返し処理の代用として内包表記を使うのは、不自然に感じます
hayataka2049

2018/06/13 05:01

あと、恐らく無駄に遅い(今回はどうせinputがあるので、どうでも良いんですが)
guest

0

こんな感じです。

python

1n = int(input()) 2numbers_list = [] 3for i in range(n): 4 numbers_list.append(int(input())) 5numbers_list.sort() 6 7for e in lst: 8 print(e) 9""" => 105 113 125 136 147 152 # ここまで入力 162 # ここから出力 173 185 196 207 21"""

list型のオブジェクトに入れておく必要があることと、list.sort()を使ってリストを並び替えていることがわかれば良いです。そんなに難しくありません。

4. 組み込み型 — Python 3.6.5 ドキュメント

投稿2018/06/13 03:33

hayataka2049

総合スコア30933

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

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

0

ご提示のコードだと、毎度iが上書きされてしまいます。
これを避けるには、例えば入力をリストとして受け取る必要があります。

Python

1n = int(input()) 2nums = [] 3 4for i in range(n): 5 num = int(input()) 6 nums.append(num) 7 8print(nums) # [3, 5, 6, 7, 2]

リストの作り方は他にもいろいろありますので、余力があれば調べてみると良いでしょう。


ソートは自分で調べましょう。

投稿2018/06/12 16:53

編集2018/06/12 16:56
LouiS0616

総合スコア35660

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問