У меня есть список с подсписками каждый раз, состоящий из строки, другой строки, а затем список, состоящий из следующих строк:
big_list = [['sentence', 'translation', ['error1', 'error2','error3']], ['sentence','translation',['error1','error2']],['sentence','translation',['error1', 'error2','error3','error4']]]
, и я хочу напечатать каждый встроенный список в отдельной строке сэлементы в списке, разделенные вкладкой, и элементы во встроенном списке с запятой:
sentence translation error1, error2, error3
sentence translation error1, error2
sentence translation error1, error2, error3, error4
, если все элементы в подсписках будут строками, следующий код работает нормально.
with open (outputfile, "w", encoding="utf-8") as f:
f.writelines('\t'.join(i) + '\n' for i in big_list)
Но с третьим элементом в подсписке, являющимся списком, он становится более сложным, и я не знаю, как лучше всего решить эту проблему?
Все, что я могу придумать, этопреобразование встроенного списка в подсписке сначала в строку также с помощью "".join(j) + "," for j in subsublist
,
Итак, я попробовал следующее:
string_errors = ("".join(j) + "," for j in dict["trg_errors"])
Но он говорит, что тип является объектом-генератором, а нестрока.Тогда я все еще не могу использовать свою функцию writelines
.Как я могу сделать это строкой?И есть ли более эффективные способы решения этой проблемы?