-1
I need to remove objects that have the same conta
, saldo_devedor
, and that the limite
be equal to 0
.
list = [
{
'conta': u'1.3.02',
'saldo_devedor': 999.08,
'limite': 2500.0
},
{ 'conta': u'1.3.02',
'saldo_devedor': 999.08,
'limite': 0.0
},
{ 'conta': u'1.3.03',
'saldo_devedor': 600.00,
'limite': 1000.00
}
]
In this case there are 2 records that have the same conta
and saldo_devedor
, but the one that has the limite
equal to 0
has to be removed, thus leaving the list:
list = [
{
'conta': u'1.3.02',
'saldo_devedor': 999.08,
'limite': 2500.0
},
{ 'conta': u'1.3.03',
'saldo_devedor': 600.00,
'limite': 1000.00
}
]
I tried an example I saw, but the error and I don’t know if that’s the way you can do it:
new_list = list(filter(lambda x, y: x.conta == y.conta and x.saldo_devedor == y.saldo_devedor and x.limit != 0, list_1))
Error:
Traceback (most recent call last):
File "main.py", line 18, in <module>
new_list = list(filter(lambda x, y: x.conta == y.conta and x.saldo_devedor == y.saldo_devedor and x.limit != 0, list_1))
TypeError: <lambda>() missing 1 required positional argument: 'y'
What problem presented with your code?
– Augusto Vasques
I’m new to Python, so I don’t know how to do it,
new_list = filter(lambda x, y: x.conta == y.conta and x.saldo_devedor == y.saldo_devedor and x.limit == 0, list_1)
, I tried that there, but it didn’t work.– ALE_ROM
Would do using
for
(instead of using filter and lambda)?– Danizavtz
Use a
for
even to solve, but I wonder if you have a better solution.– ALE_ROM