Quantcast
Channel: 連想配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 129

連想配列の特定のキーの値が同じものを一つに絞る

$
0
0

自分で調べていてあまり適切なものがネットで見つからなかったので、ここに残しておきます。
言語はPythonで書いておりますが、他の言語でも応用できるので、コメントを中心に読んでいってください。

# ピカチュウが被っているので
data = [
    {"species": "ピカチュウ", "color": "yellow" , "animal": "ねずみ"},
    {"species": "カイリュー", "color": "orange" , "animal": "ドラゴン"},
    {"species": "ヤドラン", "color": "pink" , "animal": "やどかり"},
    {"species": "ピカチュウ", "color": "orange" , "animal": "ねずみ"},
    {"species": "ビジョン", "color": "purple" , "animal": "とり"},
    {"species": "コダック", "color": "yellow" , "animal": "あひる"},
    {"species": "ピカチュウ", "color": "white" , "animal": "ねずみ"}
]

# こうして、ピカチュウを一つにしたい
new_data = [
    {"species": "ピカチュウ", "color": "yellow" , "animal": "ねずみ"},
    {"species": "カイリュー", "color": "orange" , "animal": "ドラゴン"},
    {"species": "ヤドラン", "color": "pink" , "animal": "やどかり"},
    {"species": "ビジョン", "color": "purple" , "animal": "とり"},
    {"species": "コダック", "color": "yellow" , "animal": "あひる"}
]

コード

data = [
    {"species": "ピカチュウ", "color": "yellow" , "animal": "ねずみ"},
    {"species": "カイリュー", "color": "orange" , "animal": "ドラゴン"},
    {"species": "ヤドラン", "color": "pink" , "animal": "やどかり"},
    {"species": "ピカチュウ", "color": "orange" , "animal": "ねずみ"},
    {"species": "ビジョン", "color": "purple" , "animal": "とり"},
    {"species": "コダック", "color": "yellow" , "animal": "あひる"},
    {"species": "ピカチュウ", "color": "white" , "animal": "ねずみ"}
]

# 重複を削りたいkeyの値を追加していく配列
species_array = []
# 新たにできる連想配列
new_data = []

# データ1つ1つに処理を行う
for pokemon in data:
    # 重複を削りたいkeyの値を変数に入れる
    species = pokemon["species"]
    # 重複を削りたいkeyの値を追加した配列に同じ値がなければ
    if(species not in species_array):
        # 重複を削りたいkeyの値を追加した配列に新たな値を追加して
        species_array.append(species)
        # 新たにできる連想配列にデータを追加する
        new_data.append(pokemon)

「他にもこんなやり方あるよ」とか、
「こういうコードの応用方程式集みたいなものあるよ」とか、
コメント残していってもらえると助かります。


Viewing all articles
Browse latest Browse all 129

Trending Articles