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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果數(shù)字降序返回true

如果數(shù)字降序返回true

慕標琳琳 2021-04-01 15:11:17
對于以下功能,如果數(shù)字降序,我嘗試返回True,否則返回false?!皵?shù)字”必須為正整數(shù)這是我的代碼:def rev_num_sort(digits):    n = len(digits)    for i in range n:        if digits[i] < digits[i+1]            return False    return True例如print rev_num_sort(321)Trueprint rev_num_sort(123)False我知道您不能接受int的長度,并且在運行print語句時遇到此錯誤,但是我不確定如何在找不到長度的情況下進行計算。
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

>>> def rev_num_sort(num):

...     strs = str(num)

...     return strs == "".join(sorted(strs, reverse=True))

... 

>>> rev_num_sort(321)

True

>>> rev_num_sort(123)

False

>>> rev_num_sort(510)

True

使用zip和any,無需排序:


>>> def rev_num_sort(num):

...     strs = str(num)

...     return all(int(x) > int(y) for x, y in zip(strs, strs[1:]))

... 

>>> rev_num_sort(321)

True

>>> rev_num_sort(123)

False

>>> rev_num_sort(510)

True

使用itertools.izip和迭代器的內(nèi)存高效版本:


>>> from itertools import izip

>>> def rev_num_sort(num):

...     strs = str(num)

...     it1 = iter(strs)

...     it2 = iter(strs)

...     next(it2)

...     return all(int(x) > int(y) for x, y in izip(it1, it2))

... 

>>> rev_num_sort(321)

True

>>> rev_num_sort(123)

False

>>> rev_num_sort(510)

True


查看完整回答
反對 回復(fù) 2021-04-05
?
慕斯709654

TA貢獻1840條經(jīng)驗 獲得超5個贊

這是一個避免列表復(fù)制的短路版本


def rev_num_sort(digits):

    digits = str(digits)    # assuming digits is an int/long

    all(digits[i-1] >= j for i, j in enumerate(digits) if i)


查看完整回答
反對 回復(fù) 2021-04-05
?
夢里花落0921

TA貢獻1772條經(jīng)驗 獲得超6個贊

def descending(n):

    prevDplace = False

    while n > 0:

        n *= 0.1

        currDplace = n%1

        n = n - currDplace

        if prevDplace:

            if prevDplace > currDplace:

                return False

        else:

            prevDplace = currDplace

    return True



def rev_num_sort(digits):

    digits = str(digits)    # assuming digits is an int/long

    all(digits[i-1] >= j for i, j in enumerate(digits) if i)

這是基于兩者的10000次時間(分別在元組中得出的結(jié)果)基于Gnibbler和我的(類似于C先生)的一些性能比較:


1234444444566788888999999999

9999999998888876654444444321

descending:


(0.48712682723999023, 0.8589978218078613)

gnibbler:


(0.1695241928100586, 0.69327712059021)

我發(fā)現(xiàn)這很令人驚訝,字符串方法要快得多!


查看完整回答
反對 回復(fù) 2021-04-05
  • 3 回答
  • 0 關(guān)注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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