2

なぜこれが機能しないのですか?

def straight(ranks):
    "Return True if the ordered ranks form a 5-card straight."
    return range(max(ranks)-4, max(ranks)+1) == ranks.sort()

ランクが次のようになっていると仮定します。

>>> ranks = [9, 8, 7, 6, 5]
>>> range(max(ranks)-4, max(ranks)+1)
[5, 6, 7, 8, 9]
>>> ranks.sort()
[5, 6, 7, 8, 9]

では、その理由は次のとおりです。

>>> range(max(s)-4,max(s)+1) == s.sort()
False
4

3 に答える 3

9

s.sort()Noneリストを所定の位置に並べ替えるために戻ります。を使用しsorted(s)ます。

>>> s = [1,3,2]
>>> repr(s.sort())
'None'
>>> repr(s)
'[1, 2, 3]'
>>> repr(sorted(s))
'[1, 2, 3]'
于 2012-05-18T18:24:57.817 に答える
2

ranks.sort()に等しいのでNonesorted(ranks)比較に使用します。

于 2012-05-18T18:32:46.860 に答える
2

rank.sort()はその場でリストをソートするので、Noneを返します...リストを返したい場合はsorted()を使用してください。

于 2012-05-18T18:47:57.700 に答える