Лучший способ обработки большого списка словарей в Python

Я выполняю статистический тест, который использует 10000 перестановок в качестве нулевого распределения.

Каждая из перестановок – это 10 000 ключевых слов. Каждый ключ представляет собой ген, каждое значение представляет собой набор пациентов, соответствующих гена. Этот словарь программно сгенерирован и может записываться и считываться из файла.

Я хочу иметь возможность перебирать эти перестановки для выполнения моего статистического теста; однако сохранение этого большого списка в стеке замедляет мою производительность.

Есть ли способ сохранить эти словари в сохраненной памяти и получить перестановки, когда я перебираю их?

Спасибо!

One Solution collect form web for “Лучший способ обработки большого списка словарей в Python”

Это общая вычислительная проблема; вам нужна скорость хранящихся в памяти данных, но не хватает памяти. У вас есть по крайней мере следующие варианты:

  • Купите больше ОЗУ (очевидно)
  • Пусть процесс обменивается. Это оставляет OS для решения, какие данные хранить на диске и хранить в памяти
  • Не загружайте все в память сразу

Поскольку вы выполняете итерирование по вашему набору данных, одним из решений может быть загрузка данных лениво:

def get_data(filename): with open(filename) as f: while True: line = f.readline() if line: yield line break for item in get_data('my_genes.dat'): gather_statistics(deserialize(item)) 

Вариант состоит в том, чтобы разделить ваши данные на несколько файлов или сохранить ваши данные в базе данных, чтобы вы могли одновременно обрабатывать ваши данные по n элементам.

  • Python: как отсортировать словарь по ключу
  • Проверьте, существует ли определенный ключ и значение в словаре
  • Доступ к значениям ключа Python с символами запуска ключа
  • Хеширование словаря?
  • Несколько значений для ключа в словаре в Python
  • Python - Список уникальных словарей
  • Общий способ создания вложенного словаря из плоского списка в python
  • Назначение значения переменной класса присваивает его всем экземплярам этого объекта
  •  
    Interesting Posts for Van-Lav

    Получение ввода пароля командной строки в Python

    Как решить проблему утечки памяти Python при использовании urrlib2?

    Matplotlib: получение подзаголовков для заполнения фигуры

    Регулярное выражение Python разделяет слова, разделенные пробелами, в список

    UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0x9c

    Преобразование каждого сгруппированного столбца в объект DataFrameGroupBy в список

    Как я могу случайным образом выбрать оператора математики и задать с ним повторяющиеся вопросы математики?

    Вычислить кумулятивную функцию распределения (CDF) в Python

    Python Pandas – слияние в основном дублированных строк

    Отобразить текстурированный прямоугольник с PyOpenGL

    Изменение версий Python в командной строке

    pandas эффективный набор кадров данных

    Flask обрабатывает PDF как свою собственную страницу

    У Eclipse есть направляющие отступов?

    Какое решение лучше подходит для социальной аутентификации Django?

    Python - лучший язык программирования в мире.