я сейчас этот код для факторизации больших чисел:список понимания с несколькими заданиями
def f1(n):
return [[i, n//i] for i in range(1 , int(n**0.5) + 1) if n % i == 0]
Это самая быстрая версия, которую я видел до сих пор (если есть более быстрый способ, которым я хотел бы знать о том, что, как хорошо), но мне нужен один список всех факторов без гнездования (так что я хочу что-то вроде: [factor 1, factor 2, factor 3,..., factor n-3, factor n-2, factor n-1, factor n]
и т. д. Порядок не очень важен.
Как таковой мне было интересно, способ приписывать множество назначений посредством понимания списка.
, т. Е.
def f1(n):
return [i, n//i for i in range(1 , int(n**0.5) + 1) if n % i == 0]
Таким образом, у меня нет вложенного списка. Это было бы быстрее, и скорость была сущностью.
Я просмотрел документацию, и я не смог найти ни одного примера нескольких назначений.
Так почему 'я,' там вообще, если вы только хотели 'п // i' фактор? –
В этом случае вряд ли поможет много из-за небольшого количества обращений относительно промахов для факторов, но 'divmod' можно использовать для деления и мода в одно и то же время. – jwelsh
И I, и n/I являются факторами n –