What is the best python data type to store note names?

I want it to be iterable but some notes have alternative names. For example, C# (C sharp) is the same note as Db (D flat). If I use a list or a tuple then entering the alternative names will 'break' the iteration process and I won't be able to find a note, say 3 semitones above it by simply looking up the position 3 steps up from the initial note. (I have already worked out %12 to make it behave in a 'circular' way)

Ideally I would like the two alternative note names to occupy the same position in a 'list' (or whatever date type is best) and to be able to specify which name I want returned by the way I call it. Something like notes.flats for example.

Is there actually a data type that supports something like this or am I looking completely the wrong way? My next thought would be to make a class.