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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

753閲覧

Python 2次元リストの並べ替え

Justin04

総合スコア11

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/10 02:48

入力された文字列の高さを幅を変更して出力するプログラムを書いています。
例えば下記のコードで
3 4 2
abcd
efgh
ijkl

と入力されると、1行目3つ目の「2」の入力を新たな文字幅として受け、
ab
cd
ef
gh
ij
kl

と出力されるプログラムが書きたいです。

しかし、新たな文字幅に「7」など割り切れない数字を入力した際に、

abcdefg
hijkl

というように表示されません。
下記の書き方では問題あるでしょうか?

Python

1import numpy as np 2 3#それぞれ高さ、幅、変更後の幅を入力 4h, w, x = map(int, input().split()) 5 6display = [] 7#入力された文字列をリストに格納 8for i in range(h): 9 sentence = list(input()) 10 display.append(sentence) 11 12#2次元リストを1次元に直す 13f_display = np.ravel(display) 14#1次元リストを新たな高さ、幅で格納 15n_display = f_display.reshape(int(H*W/X),-1 ) 16#新たな文字列を出力 17for n in n_display: 18 print(*n, sep="")

教えていただければと思います。よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

割り切れない幅を想定する場合、reshapeは向かないように思います。
今回の場合スライスを使うのがシンプルで簡単なのではないでしょうか。

Python

1while len(f_display) != 0: 2 d, f_display = f_display[:x], f_display[x:] 3 print(*d, sep="")

f_displayの型は一次元のndarrayでも組み込みのリストでも動きます。

書いてみた

おもしろそうだったので。

Python

1import sys 2 3_, _, w = map(int, input().split()) 4 5s = ''.join(map(str.rstrip, sys.stdin)) 6while s: 7 line, s = s[:w], s[w:] 8 print(line)

投稿2020/06/10 03:00

編集2020/06/10 04:47
LouiS0616

総合スコア35658

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

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

Justin04

2020/06/10 05:04

ここまで丁寧に解説していただき感謝です。よく考えればリストにする必要はなく、文字列として扱えば良いんですね…。非常に勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問