Эти переменные разделяют область действия в компиляторе C #. Однако область видимости не существует в CIL . Что касается фактического создания / инициализации ... модель памяти .NET позволяет движению компилятора читать / записывать бит до тех пор, пока соблюдаются простые правила, если только переменная не отмечена как volatile .
Попробуйте это -
regions_CONSUMER_DISCR = [x+'/CONSUMER DISCR' for x in regions]
regions_CONSUMER_STAPLES = [x+'/CONSUMER STAPLES' for x in regions]