Поскольку данные, как представляется, находятся в формате словаря, кажется, что вы действительно должны использовать csv.DictWriter () для фактического вывода строк с соответствующей информацией заголовка. Это должно позволить упростить обработку. Параметр fieldnames затем правильно настроил порядок, в то время как вывод первой строки, поскольку заголовки позволили бы его читать и обрабатывать позже csv.DictReader ().
Например, Майк Рефас использовал
output = csv.writer(sys.stdout)
output.writerow(data[0].keys()) # header row
for row in data:
output.writerow(row.values())
Однако просто измените начальную настройку на output = csv.DictWriter (наборы файлов, fieldnames = data [0] .keys ())
Обратите внимание, что поскольку порядок элементов в словарь не определен, вам, возможно, придется явно создавать записи полей. Как только вы это сделаете, писатель будет работать. Затем записи записываются так, как показано на рисунке.
Почему длительность алгоритма быстрой сортировки увеличивается, если в массиве есть повторяющиеся значения?
blockquote>Это верно только в случае использования схемы разбиения типа Lomuto, где повторяющиеся значения приводят к получению разбиения хуже.
При использовании схемы разбиения Hoare длительность алгоритма обычно уменьшается, когда массив имеет дублирующиеся значения, потому что разбиение приближается к идеальному случаю разделения ровно пополам, а улучшенное разделение компенсирует дополнительные перестановки в типичной системе с памятью. кэш.