質問: row_num + 1 ``` ### 試したこと 初期データで入れておかないとエラーが出るので、とりあえず1行最初に入れてあります。 index out of rangeの原因はrecognize_name_numで存在しないところがおかしいことだろう、と判断はつくのですがどういう手法で解決したらいいかがわからない状態です。あとはこれでできたらtsvで出力しようと思っています。 考えに考えたのですがうまくいきませんでした、みなさまの知恵を貸してください...!よろしくお願いします。
回答: 無理にゴールとなる形式(listの中にlist)で処理しようとせずに、一度dictなどの扱いやすい形式にして最後に目的の形にしたほうが良いかと。 ``` import csv # listではなく、dictで入力データを管理 output_data = {} with open('second_rock_musician.tsv','r') as f: reader = csv.reader(f) for row in reader: str_row = ",".join(row) #いったん文字列へ array_row = str_row.split(',') #扱いやすい配列へ。 artist = array_row[0] genre = array_row[1] output_data.setdefault(artist, []) output_data[artist].append(genre) # dictデータを目的のlist形式に変換 output_data = [[artist, ] + genre for artist, genre in output_data.items()] output_data.sort(key=lambda data: data[0]) # 一応、アーティスト名でソート print(output_data) ```