It is highly suspicious when a value is saved in a collection for a given key or index and then unconditionally overwritten. Such replacements are
likely errors.
This rule raises an issue when the __setitem__
method of the same object is called multiple times with the same index, slice or key without any other action done between the calls.
Noncompliant Code Example
def swap(mylist, index1, index2):
tmp = mylist[index2]
mylist[index2] = mylist[index1]
mylist[index2] = tmp # Noncompliant
list2 = [0,1,2,3,4,5,6,7,8,9]
list2[3:5] = [42,42]
list2[3:5] = [42,42] # Noncompliant
mymap = {'a': {}}
mymap['a']['b'] = 42
mymap['a']['b'] = 42 # Noncompliant