コンテンツにスキップ

0301: 正の整数だけを取り出す

問題

文字列のイテラブル items から、正の整数として読める値だけを取り出す関数 positive_ints(items) -> list[int] を実装してください。 整数に変換できない文字列や、0 以下の整数は結果に含めません。

制約

  • items は文字列のイテラブルです。
  • 各文字列は、int() と同じ規則で整数に変換します。
  • 変換できない文字列に対して例外を外へ出してはいけません。
  • 入力の順序を保ちます。

>>> positive_ints([])
[]
>>> positive_ints(["10", "-2", "x", "3"])
[10, 3]
>>> positive_ints([" 7 ", "0", "+5"])
[7, 5]
>>> positive_ints(s for s in ["1", "bad", "2"])
[1, 2]

発展

取り除いた値とその理由を別のリストに記録する版を書いてください。

参考

  • 『Python Distilled』第3章「条件分岐」
  • 『Python Distilled』第3章「ループとイテレーション」
  • 『Python Distilled』第3章「例外」