第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

求和數(shù)字的數(shù)字 - python

求和數(shù)字的數(shù)字 - python

守著星空守著你 2019-08-17 16:23:38
求和數(shù)字的數(shù)字 - python如果我想找到數(shù)字的數(shù)字之和,即:輸入: 932輸出:14,即(9 + 3 + 2)這樣做的最快方法是什么?我本能地做了:sum(int(digit) for digit in str(number))我在網(wǎng)上找到了這個(gè):sum(map(int, str(number)))哪種方法最適合速度,還有其他方法更快嗎?
查看完整描述

3 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊


你可以純粹用整數(shù)做它,它將是最有效的:


def sum_digits(n):

    s = 0

    while n:

        s += n % 10

        n //= 10

    return s

或者divmod:


def sum_digits2(n):

    s = 0

    while n:

        n, remainder = divmod(n, 10)

        s += remainder

    return s

但你發(fā)布的這兩行都很好。


 


沒有增強(qiáng)任務(wù)的版本更快:


def sum_digits3(n):

   r = 0

   while n:

       r, n = r + n % 10, n // 10

   return r

 


> %timeit sum_digits(n)

1000000 loops, best of 3: 574 ns per loop


> %timeit sum_digits2(n)

1000000 loops, best of 3: 716 ns per loop


> %timeit sum_digits3(n)

1000000 loops, best of 3: 479 ns per loop


> %timeit sum(map(int, str(n)))

1000000 loops, best of 3: 1.42 us per loop


> %timeit sum([int(digit) for digit in str(n)])

100000 loops, best of 3: 1.52 us per loop


> %timeit sum(int(digit) for digit in str(n))

100000 loops, best of 3: 2.04 us per loop


查看完整回答
反對(duì) 回復(fù) 2019-08-17
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果你想保持?jǐn)?shù)字的總和,直到你得到一位數(shù)字(我最喜歡的數(shù)字特征之一被9整除),你可以這樣做:

def digital_root(n):
    x = sum(int(digit) for digit in str(n))
    if x < 10:
        return x    else:
        return digital_root(x)

事實(shí)證明這本身就很快......

%timeit digital_root(12312658419614961365)10000 loops, best of 3: 22.6 μs per loop


查看完整回答
反對(duì) 回復(fù) 2019-08-17
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

這可能有所幫助

def digit_sum(n):
    num_str = str(n)
    sum = 0
    for i in range(0, len(num_str)):
        sum += int(num_str[i])
    return sum


查看完整回答
反對(duì) 回復(fù) 2019-08-17
  • 3 回答
  • 0 關(guān)注
  • 869 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)