こんな辞書があります
{id : ['string',[1,2,3,4,5]], .....}
ユニークな文字列で新しい辞書を作成したいと思います。ただし、等しい文字列がある場合は、2 番目の値の最大平均に基づいてそのうちの 1 つをフィルタリングします。例として、私は持っています
{x:['ABC', [1,2,3,4,5], y:['ABC',[6,7,8,9,10],...}
この場合、x と y の最初の値は同じ文字列ですが、6,7,8,9,10 の平均は 1,2,3,4,5 よりも大きいです。したがって、y は新しい辞書に追加されます。
次のアプローチを使用します。
# exemplary dict
d = {'x':['ABC', [1,2,3,4,5]], 'y':['ABC',[6,7,8,9,10]], 'z': ['BCA', [1,2,3]]}
new_d = {}
for k,v in d.items():
if v[0] not in new_d or sum(v[1])/len(v[1]) > sum(new_d[v[0]][0])/len(new_d[v[0]][0]):
new_d[v[0]] = [v[1], k]
new_d = {v[1]:[k, v[0]] for k,v in new_d.items()}
print(new_d)
出力:
{'y': ['ABC', [6, 7, 8, 9, 10]], 'z': ['BCA', [1, 2, 3]]}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加