■前提:実現したいこと
非エンジニア、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
よろしくお願いいたします。
まだ回答がついていません
会員登録して回答してみよう