3

新しい代入式を初めて使用しようとしていますが、助けが必要です。

与えられた 3 行のログ出力:

sin = """Writing 93 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/Russia.seirdc.March6-900.12.csv ..
Writing 100 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/India.seirdc.March6-900.6.csv ..
Writing 100 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/US.seirdc.March6-900.15.csv ..
"""

その意図は、State( RussiaIndia、およびUS ) とレコード数 (93,100,100) だけを抽出することです。したがって、望ましい結果は次のとおりです。

[['Russia',93],['India',100],['US',100]]

これには、次の手順を Python に変換する必要があります。

  • 各行をリスト要素に変換する
  • スペースで分割 ['Writing', '93', 'records', 'to', '/data/newstates-900.03-07_07/top100.newstates-900.03-07_07/Russia.seirdc.March6-900.12.csv', '..']
  • そのような 5 番目のトークンを「/」で分割し、最後の要素を保持します。Russia.seirdc.March6-900.12.csv
  • その要素を「.」で分割します。最初(0番目)の要素を保持します。Russia

これが私の間違った試みです:

import fileinput
y = [[ z[4].split('/')[-1].split('.')[0],z[1]] 
     for (z:=x.split(' ')) in 
     (x:=sin if sin else fileinput.input()).splitlines())]
4

3 に答える 3