3 回答

TA貢獻1827條經驗 獲得超8個贊
你的問題不是很好,但我會做一些假設并嘗試提供幫助。
試試這個:
import numpy as np
nan = np.nan
dict_list = [{'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q3', 'y': 169.80000000000001, 'text': '169.8', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q4', 'y': 53.829999999999998, 'text': '53.83', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q1', 'y': 63.420000000000002, 'text': '63.42', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q2', 'y': 42.369999999999997, 'text': '42.37', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q3', 'y': nan, 'text': 'nan', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q4', 'y': nan, 'text': 'nan', 'showarrow': False}]
filtered_dict_list = [x for x in dict_list if not np.isnan(x['y'])]
這是一個簡單的列表理解過濾,谷歌它......
祝你好運!
做出的假設:
nan 應該是 numpy.nan
“刪除”是指“獲取不包含不需要的字典的新字典列表

TA貢獻1815條經驗 獲得超10個贊
下面的工作。
newrecord2 = [] for d in annotations2: if d['text'] != 'nan': # 前提是你在開頭“import numpy.nan as nan” newrecord2.append(d) #print newrecord

TA貢獻1943條經驗 獲得超7個贊
以下解決您的問題:
# let name your initial record "record"
# record = [{'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q3', 'y': 169.80000000000001, 'text': '169.8', 'showarrow': False},..]
#
# Let initialise a new record
newrecord = []
for d in record:
if d['y'] is nan: # provided that you "import numpy.nan as nan" at the beginning
del d['y']
newrecord.append(d)
# “newrecord”對應沒有d[y] = nan的新記錄。
添加回答
舉報