Python初心者です。内包表記についての質問です。
空でない数字のリスト中から、重複の無いもののみを除外する課題の解決を試みました。
入力[1, 2, 3, 1, 3]→出力[1, 3, 1, 3]
入力[1, 2, 3, 4, 5]→出力[]
これに対して、次のようなコードを書きました。
lang
1def solve(data): 2 3 return data.remove(uni for uni in data if data.count(uni)==1)
引数dataのリストから、countで個数が1個だったもののみをremoveで取り除く、という処理を意図しています。しかし、[1, 2, 3, 1, 3]など数のリストを入力すると、
ValueError: list.remove(x): x not in list
とエラーが返ってきます。原因がわからないので、ご教授いただきたく思います。
なお、課題の解決自体は、次のコードで達成できました。
lang
1def solve(data): 2 3 for i in data[:]: 4 if data.count(i)==1: 5 data.remove(i) 6 7 return data
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/29 02:15