У меня есть более 9000 атрибутов данных в словаре. Простая версия выглядит так:Сортировка значений списка в словаре
test = {1092268: [81, 90], 524292: [80, 80], 892456: [88, 88]}
Это идентификаторы генов с двумя значениями внутри списка. Я хочу, чтобы в итоге появилось несколько словарей, содержащих все идентификаторы со значениями выше или ниже определенного значения. Таким образом, в этом примере можно сказать, что я хочу, чтобы в итоге было три словаря: один содержит идентификаторы и значения, которые находятся ниже 85, а остальные - выше 85, а последние - с первым значением под 85 и вторым выше 85. Поэтому я бы в конечном итоге с этим:
testabove = { 892456: [88, 88]}
и
testbelow = { 524292: [80, 80]}
и
testboth = { {1092268: [81, 90]}
Я понятия не имею, как это цифра.
Вы можете использовать 'min (j)> 85' в качестве условия для' testabove' и аналогичного для 'testbelow'. Или, возможно, «все (x> 85 для x в j)», что быстрее в отрицательном случае. – Marein
@Marein Я думаю, что простой способ является лучшим, потому что он требует меньше объяснений :) Но да, это хорошая идея. Спасибо –
@Marein: Хорошие идеи. Хотя «короткое замыкание» на основе «все» я подозреваю, что мин/макс будет быстрее, так как они работают на скорости C. Кто-нибудь хочет сделать несколько тестов timeit ...? –