Если nested_list
является одним из значений словаря, то вы применяете '\t'.join()
к отдельным словам.Вы хотели бы присоединиться к всему списку :
file.write('\t'.join(nested_list) + '\n')
или, если бы вам пришлось перебирать значения словаря:
file.writelines(
'\t'.join(nested_list) + '\n'
for nested_list in dict_with_lists.values())
Вышеправильно использует file.writelines()
метод ;передавая в повторяемую строку для записи .Если вам нужно было передать одну строку, то вы только заставляете Python выполнять дополнительную работу, поскольку он перебирает все отдельные символы этой строки, чтобы записать их отдельно, после чего базовый буфер должен снова собрать их обратно в более крупные строки.
Однако здесь нет необходимости заново изобретать колесо записи с разделенными символами значениями.Используйте модуль csv
, установив разделитель на '\t'
:
import csv
with open('fname', 'w', newline='') as file:
writer = csv.writer(file, delimiter='\t')
writer.writerows(dict_with_lists.values())
Выше записывает все списки в словаре dict_with_lists
в файл,Объект csv.writer()
не возражает, если ваши списки имеют разную длину.