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

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

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

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

解決済

Python 内容と件数が異なるが対応する2つのリストを整合させたい

SMGLA
SMGLA

総合スコア3

Python 3.x

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

2回答

0評価

1クリップ

100閲覧

投稿2022/05/13 17:55

■前提:実現したいこと

非エンジニア、Python初学者です。

Pythonで、内容と件数が異なるが対応する2つのリストを整合させたいと考えています。

Python

source_list = ["りんご", "オレンジ", "ぶどう", "バナナ", "いちご"] target_list = ["abcりんご", "ぶどうdef", "abcバナナ"]

source_listの文字列がtarget_listの要素内にあればそれらをそのままタブ区切りでペアにし、なければ”Missing"という文字列とペアにして、整合した新たなリストを作りたいです。リストはsource_listの方がtarget_listよりも長いです。どちらのリストにも重複はありません。

期待する出力結果:

Python

new_list = ["りんご abcりんご", "オレンジ Missing", "ぶどう ぶどうdef", "バナナ abcバナナ", "いちご Missing"]

■ 発生している問題

期待する出力結果が得られません。

実際の出力結果:

Python

new_list = ['りんご abcりんご', 'ぶどう ぶどうdef', 'いちご Missing']

■ 該当のソースコード

Python

new_list = [] for source in source_list: target_item = target_list[0] if source in target_item: new_list.append(f"{source} {target_item}") source_list.remove(source) target_list.remove(target_item) else: new_list.append(f"{source} Missing") source_list.remove(source) print(new_list)

■ 試したこと

source_list の要素を順にtarget_listの1つ目の要素と照合し、同じ文字列が存在すればそれらを新しいnew_listに転記した上でそれぞれから削除し、存在しなければ"Missing"と共にnew_listに転記して同様にに削除すれば、扱うのは常にtarget_listの1つ目の要素で固定できると考えました。しかし、対応する要素のない「オレンジ」と対応する要素のある「バナナ」については何も出力されないというよくわからない結果になります。

■ 環境情報

Google colaboratory 上で作業しています。
Python 3.7.13
Mac OS 12.3.1
よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

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