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