質問: [] # タイトルデータをリストに格納 for row in rows: titledata.append(row) #←****問題はここです**** #確認のため、タイトルデータを出力 for title in titledata: print(title) cur.close con.close return titledata ``` def db_titledata():の 上記のようにtitledata.append(row)で処理をすると、うまく検索できません。 printの結果はターミナル上で、 **('タイトル1\u3000ver1',) ('タイトル2',) ('タイトル3',)** と表示されます。 titledata.extend(row)で処理をすると望んだ結果が得られます。検索のループもうまく機能します。 printの結果はターミナル上で、 **タイトル1 ver1 タイトル2 タイトル3** と表示されます。appendとextendの違いはあくまで、変数を末尾に追加かリストでまとめて追加という違いの認識しかないのですが、 このようにappendとextendで違う結果が得られるのはなぜでしょうか?
回答: `row`の型がこちらでは確認できませんのでprint結果からの推測になりますが。 appendでは**rowそのもの(おそらくタプル)**が、`titledata`リストの要素として追加されます。 expandを使うと、**rowのタプルの要素の文字列**が`titledata`リストの要素として追加されます。 そのため、appendのほうでは意図しない動作をしていると思います。 appendとextendの動作(要素の格納のされかた)の違いは、以下が参考になります。 要素の追加と連結(appendメソッド, extendメソッド)