samedi 27 mai 2017

Python inline if statement

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 inline IF condition, I don't want to add duplicated values in the list, but I got a KeyError. Please give me any ideas for a workaround.

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?

Thanks in advance.

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]

Aucun commentaire:

Enregistrer un commentaire