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

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

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

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

Q&A

解決済

2回答

250閲覧

2次元のリストの要素を結合して文字列としたうえで、それを要素として持つ1次元のリストを作成したい

B.J.Q

総合スコア2

Python 3.x

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

1グッド

0クリップ

投稿2023/11/28 06:46

編集2023/11/28 06:47

実現したいこと

python

1list_a = [['a','b','c'],['d','e','f'],['f','h'],['i']] 2list_b = ['abc', 'def', 'fh', 'i']

以上のように、list_aの要素である各"リストの要素"を結合して文字列にしたうえで、list_bのような形にしたい。

試したこと

python

1list_a = [['a','b','c'],['d','e','f'],['f','h'],['i']] 2list_b = [] 3for i in list_a: 4 tmp = [] 5 tmp.append(",".join(i)) 6 list_b.append(tmp[0].replace(',','')) 7print(list_b) 8# >['abc', 'def', 'fh', 'i']

色々検索してみたりして何とか実現したいものは作れたのですが、なんだかすごく冗長な書き方のような気がします。
例えばtmpを使用しないような、もっとよりよい書き方というのはあるのでしょうか。

補足情報(FW/ツールのバージョンなど)

Python 3.9.0

tatsu99👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

python

1 tmp = [] 2 tmp.append(",".join(i)) 3 list_b.append(tmp[0].replace(',',''))

その1
リストに入れなくてもいい

python

1 tmp = ",".join(i) 2 list_b.append(tmp.replace(',',''))

その2 空文字列でつなげばよい

python

1 list_b.append("".join(i))

リスト内包表記にすると、もっとすっきり書けますね。

投稿2023/11/28 07:00

TakaiY

総合スコア14307

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

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

B.J.Q

2023/11/28 07:05

お早い回答ありがとうございました。 リスト内包表記で```list_b = ["".join(i) for i in list_a]```と書くことが出来ました。
guest

0

既に解決済みですが、map を使う方法も考えられます。

python

1list_a = [['a','b','c'],['d','e','f'],['f','h'],['i']] 2list_b = [*map(''.join, list_a)] 3print(list_b)

投稿2023/11/28 07:13

melian

総合スコア21118

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問