ひるあんどんブログ

色々なことに手を出してみるブログ

Non-unique Elements

あなたは空でない整数のリスト(X)を与えられます。 このタスクでは、あなたはこのリストの非ユニークな要素だけでできているリストを返さなければいけません そのようにするために、あなたは全てのユニークな要素(与えられたリストの中に一回だけ含まれる要素)を削除する必要があるでしょう。 このタスクを解くとき、リストの順番を変更してはいけません。 例: [1, 2, 3, 1, 3] 1と3は非ユニークな要素で結果は[1, 3, 1, 3]になります。

non-unique-elements

入力: 整数のリスト

出力: 整数のリスト

例:

checkio([1, 2, 3, 1, 3]) == [1, 3, 1, 3]

checkio([1, 2, 3, 4, 5]) == []

checkio([5, 5, 5, 5, 5]) == [5, 5, 5, 5, 5]

checkio([10, 9, 10, 10, 9, 8]) == [10, 9, 10, 10, 9]



どのように使われるか: このミッションは、より複雑なタスクを解決するための基礎である何か、配列の操作法を理解するのに役に立ちます。 コンセプトは簡単に実世界のタスクに一般化できます。 例えば: 頻度の低い要素(ノイズ)を取り除くことで統計を明確にする必要があるときです。

事前条件:
0 < |X| < 1000

def checkio(data):
    #Your code here
    #It's main function. Don't remove this function
    #It's used for auto-testing and must return a result for check.
    result = []
    for x in data:
        if data.count(x) > 1: result.append(x)
        

    #replace this for solution
    return result

はてな記法じゃないと、シンタックスハイライトできないわからなくて手間取ってしまった…。

最近ストレスがすごいので気晴らしにpythonというプログラム言語をはじめた。しらばくはチュートリアル読んでたんだけども、あきたのでcheckioというサイトの問題を解いてみる。自分の回答かいて勉強の記録とします。

この問題は簡単 pythonにはシーケンス型(ここでは仮にsとする)中に要素(ここではiとおく)がいくつ現れるかを調べるcountという組み込みメソッドがある。
これを素直に使わせてもらう。
s.count(i)が1以上なら非特異的(Non-unique)なので、それをリストに追加して返しているだけ。