3 回答

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊
我將首先更改結(jié)構(gòu):
table = [dict(zip(data.keys(), row)) for row in zip(*data.values())]
它看起來像這樣:
[{'AttrA': 1, 'AttrB': 12, 'AttrC': 'a'},
{'AttrA': 2, 'AttrB': 43, 'AttrC': 'd'},
{'AttrA': 3, 'AttrB': 23, 'AttrC': 'f'},
{'AttrA': 4, 'AttrB': 25, 'AttrC': 'z'}]
現(xiàn)在,您可以完全按照您的描述進(jìn)行過濾:
[row for row in table if row['AttrA'] >= 3]

TA貢獻(xiàn)1995條經(jīng)驗 獲得超2個贊
def my_filter(data,attr,val):
ind = [i for i,x in enumerate(data[attr]) if x >= val]
reducedData = {k: [v[i] for i in ind] for k,v in data.items()}
return reducedData
data = {'AttrA':[1,2,3,4],'AttrB':[12,43,23,25],'AttrC':['a','d','f','z']}
print my_filter(data, 'AttrA',3)
輸出:
{'AttrB': [23, 25], 'AttrC': ['f', 'z'], 'AttrA': [3, 4]}

TA貢獻(xiàn)1820條經(jīng)驗 獲得超3個贊
我想我會選擇:
data = [(12, 'a'), (43, 'd'), (23, 'f'), (25, 'z')]
data_dic = dict(enumerate(data, 1))
reducedData = {k:v for k, v in data_dic if k >= 3}
添加回答
舉報