2016-12-12 11 views
0
yearlist = [] 
    unluckydates = [] 
    for year in range(end): 
     unluckydates = unlucky(year) 
     if len(unluckydates) == 3: 
      yearlist.append(year) 
    return yearlist 

は、ここでの各変数がために使用されているものです。この機能をリストの理解でどのように解決できますか?

unlucky(year)は年を受け入れ、リストに不運な日数(13日の金曜日)を返す関数です。

unluckydatesunlucky(year)

yearlistからリストを格納するために使用され、関数があること2016年に0からすべての年のリストを返す3不運な日数(13日の金曜日)

を持って年を格納するために使用されます3つの不運な日付があります。私はそれをこのように書いた、今、私はリストの理解を使ってそれを書く方法を知りたい。

ここに私が思い付いたラインです:以来、forループのターゲット変数がyear命名されていることを

def mostUnlucky1(end): 
    return [year for year in range(end) if len(unlucky(year)) == 3] 

は注意(:これはそれを行うための一つの方法である

yearlist.append([(unlucky(year), unluckydates == unlucky(year)) for year in range(0, end) if len(unluckydates) == 3])

+0

必要なデータはまだありませんか?そのリストの理解を返すだけです。サイドノート、私はループの作品に驚いています。ループイテレータを設定してから、iteratorとrangeの開始引数の両方として使用し、ループ内でそれをインクリメントします。 –

+4

'year + in 1 'のループで' year + = 1'を行うのはおかしいです – trincot

+1

'year(end、end):'と 'year + = 1'の同じ変数を持っています –

答えて

1

は、つまり、すべての反復で新しい値を取得することを意味します)、forループの最後のyear += 1は冗長です。

rangeのゼロ開始インデックスを削除できます。

関連する問題