前提・実現したいこと
バージョン:python3
実行環境:VScode
以下のようなリストがあります。
output = ["A会場", "東京", "03-***-****,090-***-****"]
この場合に連絡先が複数存在する場合、ほかの会場名や住所は同じまま連絡先の分だけ同じリストを作成したいです。
連絡先が複数の場合は、連絡先ごとに","で区切られています。
そのため、splitで分割し、それぞれの値に変更しながら別で保存しようとしてコードを作成しています。
outputs = [["A会場", "東京", "03-***-****"], ["A会場", "東京", "090-***-****"]]
このような形を目指しています。
発生している問題
値の変更がうまくできず、ただ同じものが複製されるだけとなっています。
具体的には、
outputs = [["A会場", "東京", "090-***-****"], ["A会場", "東京", "090-***-****"]]
といった感じになってしまっています。
該当のソースコード
python
1list_output = [] #outputを入れるためのリスト 2output = ["A会場", "東京", "03-***-****,090-***-****"] 3 4#電話番号複数対策 5list_tell = output[2].split(",") 6#複数の場合で分岐 7if len(list_tell) > 1: 8 for tell in list_tell: 9 output[2] = tell 10 11 list_output.append(output) 12else: 13 list_output.append(output)
試したこと
print文を使用しどこで値が変わっているのかは確かめました。
for内で、一回目のループ時は、
outputs = [["A会場", "東京", "03-***-****"]]
となっており、値が変更されて入っているのを確認しています。
しかし、最後は同じものが複製されてしまっています。
変更後にappendし、変更の影響を受けないと考えているため何が原因なのかわかりません。
入れる際の変数が同じだからなのでしょうか?
補足情報(FW/ツールのバージョンなど)
元となるoutputは複数存在し、それもforループで同じような処理を行い、outputsにまとめその後また違う処理を加えます。
回答2件
あなたの回答
tips
プレビュー