python
1res = 2[{'search_count':4, 'trend': 'WORDA'}, {'search_count': 3, 'trend': 'WORDB'}, {'search_count': 2, 'trend': 'WORDBXXX'}, {'search_count': 2, 'trend': 'XXWORDA'}, {'search_count': 2, 'trend': 'XXXWORDB'}, {'search_count': 1, 'trend': 'あああいいい'}], {'search_count': 1, 'trend': 'あああえええ'}, {'search_count': 2, 'trend': 'あああううう'}, {'search_count': 2, 'trend': 'あああおおお'} 3 4top5_trend = sorted(res, key=lambda x: x['search_count'], reverse=True) 5# top5_trend = 6 [ 7 {'search_count': 4, 'trend': 'WORDA'}, 8 {'search_count': 3, 'trend': 'WORDB'}, 9 {'search_count': 2, 'trend': 'WORDBXXX'}, 10 {'search_count': 2, 'trend': 'XXWORDA'}, 11 {'search_count': 2, 'trend': 'XXXWORDB'}, 12 {'search_count': 2, 'trend': 'あああおおお'}, 13 {'search_count': 2, 'trend': 'あああううう'}, 14 {'search_count': 1, 'trend': 'あああいいい'}, 15 {'search_count': 1, 'trend': 'あああえええ'} 16 ]
top5_trendのリストから'search_count'キーの数値が大きい上位5位のみをtop5_trendに格納したいと思ってます。
また、上位5番目と同じ'search_count'の値を持つものも一緒に格納したいと思っています。
つまり、今回の場合ですと、以下のようにしたいと考えています。
python
1top5_trend =[ 2 {'search_count': 4, 'trend': 'WORDA'}, 3 {'search_count': 3, 'trend': 'WORDB'}, 4 {'search_count': 2, 'trend': 'WORDBXXX'}, 5 {'search_count': 2, 'trend': 'XXWORDA'}, 6 {'search_count': 2, 'trend': 'XXXWORDB'}, 7 {'search_count': 2, 'trend': 'あああいいい'}, 8 {'search_count': 2, 'trend': 'あああううう'} 9]
実現するために下のようにコードを書いたののですが、うまく実現できません。
具体的には、
if top5_trend[i-1]:
を書いてるにも関わらず、
IndexError: list index out of range
のエラーが出力されてしまうことや、
4行目のfor文を回して、search_countが次の要素とかぶっていなければfor文を止めるやり方がわかっておらず、実現できていないのかと思っています。
よろしくお願いします。
python
1if len(top5_trend) <= 5: #リスト内が5以下の場合 2 ans = {"recommend_trend": top5_trend} 3else: #リスト内が5以上の場合 4 for i in range(0, len(top5_trend)): 5 if i >= 5: 6 if top5_trend[i-1]: 7 if i<= len(top5_trend)-1: 8 if not top5_trend[i-1]["search_count"] == top5_trend[i]["search_count"]: 9 pop_val = len(top5_trend) - 5 10 del top5_trend[i:] 11 print(top5_trend) 12 if top5_trend[i-1]["search_count"] == top5_trend[i]["search_count"]: 13 print("pass") 14
提示のコード(最初のコード)がエラーで実行出来ません。
回答2件
あなたの回答
tips
プレビュー