Could someone help me with the syntax of the following or tell me if it is possible or not? As I am going to modify the if ... else ...
condition. I don't want to add duplicated values in the list, but I got a KeyError
.
Actually, I am not familiar with this kind of statements:
twins[value] = twins[value] + [box] if value in twins else [box]
what does this exactly mean?
Sample code
#dictionary
twins = dict()
#iterate unitlist
for unit in unitlist:
#finding each twin in the unit
for box in unit:
value = values[box]
if len(value) == 2:
twins[value] = twins[value] + [box] if value in twins else [box]
I modified the condition
#dictionary
twins = dict()
#iterate unitlist
for unit in unitlist:
#finding each twin in the unit
for box in unit:
value = values[box]
if len(value) == 2:
if value not in twins:
twins[value] = twins[value] + [box]
This
twins[value] = twins[value] + [box] if value in twins else [box]
is functionally equivalent to this:
if value in twins:
tmp = twins[value] + [box]
else:
tmp = [box]
twins[value] = tmp
You need to use:
if value in twins:
twins[value] = twins[value] + [box]
else:
twins[value] = [box]
or if you want to keep your not in
condition:
if value not in twins:
twins[value] = [box]
else:
twins[value] = twins[value] + [box]
But you could also use dict.get
with a default to do it without the if
completly:
twins[value] = twins.get(value, []) + [box]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With