2016-10-14 3 views
0

で私は、Python 3.5を使用していると私はDICSの次の配列があります:あなたはそれが特定の「行」に行われたいくつかの変更を示している見ることができるようにパイソン - グループdicts以上

d1 = [{id=1, col="name", oldvalue="foo", newvalue="bar"}, {id=1, col="age", oldvalue="25", newvalue="26"}, {id=2, col="name", oldvalue="foo", newvalue="foobar"}, {id=3, col="age", oldvalue="25", newvalue="26"}] 

d2 = [{id=1, col="name", oldvalue="foo", newvalue="bar"}, {id=1, col="age", oldvalue="25"] 

d3 = [{id=3, col="age", oldvalue="25", newvalue="26"}] 

を。

私は、更新された行の合計を返す方法があるかどうかを知りたい:

def counting_updates(d): 
    # ... 
    return total 

print counting_updates(d1) # prints 3 because 3 rows were updated 
print counting_updates(d2) # prints 1 because 1 row was updated 
print counting_updates(d3) # prints 1 because 1 row was updated 
+0

'id'は行か' col'ですか? –

+0

各行は辞書であり、idはプライマリキーです – FacundoGFlores

+0

はリスト内包を使用します: 'item( 'oldvalue']!= item ['newvalue'] d) –

答えて

1

あなたはユニークid秒数を探しているなら、その後、

len({row['id'] for row in d}) 

{}はセットになっています。

関連する問題