2012-03-16 9 views
-1

それでは、私は彼らの名前のディレクトリ内の10個のファイルを、持っているとしましょう:最後の2つのエピソードをPythonのディレクトリから移動しますか?

 
N 221 
N 222 
N 225 
N 227 
N 228 
P 09 
P 10 
P 11 

私は名前(「N」、「P」)とエピソード番号を抽出することができました。しかし、私は各シリーズの最後の2つのエピソードを把握し、残りのフォルダを "古い"フォルダに移動する良い方法を見つけ出すことはできません。どんな助けもありがとうございます。

new_episodes = [] 
for name, it in groupby(episodes, lambda x: x[0]): 
    new_episodes.extend(deque(it, maxlen=2)) 

このコード:

+2

あなたのコードを教えてください。 – agf

答えて

0

は、私はあなたがリスト

episodes = [("N", 221), ("N", 222), ("N", 225), ("N", 227), 
      ("N", 228), ("P", 9), ("P", 10), ("P", 11)] 

各ベース名がitertools.groupby()collections.deque()の組み合わせを使用することであるため、最後の2つのエピソードをフィルタリングするための簡単な方法を持っていると仮定します結果はnew_episodesとなります。

[('N', 227), ('N', 228), ('P', 10), ('P', 11)] 

T彼はリストepisodesがソートされていると仮定しています。

関連する問題