いつもお世話になっております。
今このyukicoderの問題を解いていて、
例えばN行*N列の行列のinput()が下記のように入力され、
4 - hoge fuga mogu fuga - mofu piyo piyo hoge mogu mofu hoge hoge - piyo
の多次元配列であれば[N][1]のすべてをzip()でまとめて("-","hoge","hoge","hoge")
としたいです。(tupleの順番は問わず,"-"とハイフン以外すべて"hoge"の配列がほしい)
そうすれば解きやすいのかな?と考えています。
この場合であれば
>>>la =['-', 'hoge', 'fuga', 'mogu'] >>>lb = ['fuga', '-', 'mofu', 'piyo'] >>>lc = ['piyo', 'hoge', 'mogu', 'mofu'] >>>ld = ['hoge', 'hoge', '-', 'piyo'] >>>print(list(zip(la,lb,lc))) [('-', 'fuga', 'piyo', 'hoge'), ('hoge', '-', 'hoge', 'hoge'), ('fuga', 'mofu', 'mogu', '-'), ('mogu', 'piyo', 'mofu', 'piyo')] >>>print(list(zip(la,lb,lc,ld))[1]) ('hoge', '-', 'hoge', 'hoge')
こんなかんじに。
しかし、この問題で与えられるNが2≤N≤100を取り、一次元配列と二次元配列の個数がNにより動的に決まるので、la,lbなどの変数に値を格納できないです。なのでもう少しひねる必要が出てきます。
変数に格納せずに、動的に変動する二次元配列に対してzip()をかけたいのですが何がいい方法はありますでしょうか。
よろしくお願いいたします。
###いただいた回答を受けて
書いたコード
n = int(input()) greet = [input().split() for i in range(n)] sorted_greet = [] for i in range(n): greet_in_row = [row[i] for row in greet] sorted_greet.append(greet_in_row) print(sorted_greet)
入力
- nyanpass uissu ohayo konbanwa - ohayo ohayo ohayogozaimasu nyanpass - komachanyuuna konnichiwa nyanpass komachanohayo -
出力
[['-', 'konbanwa', 'ohayogozaimasu', 'konnichiwa'], ['nyanpass', '-', 'nyanpass', 'nyanpass'], ['uissu', 'ohayo', '-', 'komachanohayo'], ['ohayo', 'ohayo', 'komachanyuuna', '-']]
#解決策
このような回答でACになりました。LouiS0616さんありがとうございました。
n = int(input()) greet = [input().split() for i in range(n)] sorted_table = [] for i in range(n): greet_in_row = [row[i] for row in greet] sorted_table.append(greet_in_row) nyanpass_cnt = [] for i in range(len(sorted_table)): l = sorted_table[i] l.remove("-") sl = set(l) if (len(sl) == 1) and (sl) == {"nyanpass"}: nyanpass_cnt.append(True) else: nyanpass_cnt.append(False) if True in nyanpass_cnt: if nyanpass_cnt.count(True) == 1: print(nyanpass_cnt.index(True) + 1) else: print(-1) else: print(-1)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/04 13:06
2018/03/04 13:08
2018/03/04 13:09
2018/03/04 13:21 編集
2018/03/04 14:16
2018/03/04 14:36 編集
2018/03/04 14:28
2018/03/04 14:30
2018/03/04 14:40
2018/03/04 15:18
2018/03/04 16:31