2017-02-25 9 views
1

私は、このコードをtakewhile()でリストの理解に変換することが可能かどうか尋ねたいですか?私はpython2.7を使用しています。takewhile()の逆カウント? Python2.7

私はこのコードを持っている:

n=4 
c=[] 
while n!=0: 
    c.append(n) 
    n-=1 
print c 

出力は次のとおりです。

[4,3,2,1] 

私はtakewhileとリスト内包(にコードを変換したい)

私はこれを試してみましたがありません運:

from itertools import takewhile 
n=4 
c=[n for n in takewhile(lambda n: n!=0, xrange(n))] 
print c 

は、出力は空のリストだった悲しい:

[] 

私は原因はxrangeの(N)の値が、それは私の所望の出力が得られなかった理由だと0から始まるということだったと思います。

takewhileでイテレータを逆にする方法がある(のような:3に4ではなく1から0にカウントを開始?)

あなたは私のジレンマのこの種のいくつかのアドバイスを与えることができますか?私はそれをお願い申し上げます。この質問に重複があるかどうか教えてください。

答えて

1

Xrangeはxrange(1, n+1)と呼ばれ、あなたが望むリストを得ることができます。逆のリストを直接取得するには、xrange (n, 1, -1)と呼ぶこともできます。

+0

非常にありがとうございますHoria Coman .. :-) –

関連する問題