diff --git a/klippy/configfile.py b/klippy/configfile.py
index 91b555cde..a8a4a4ff7 100644
--- a/klippy/configfile.py
+++ b/klippy/configfile.py
@@ -69,6 +69,8 @@ class ConfigWrapper:
         return self._get_wrapper(self.fileconfig.getboolean, option, default,
                                  note_valid=note_valid)
     def getchoice(self, option, choices, default=sentinel, note_valid=True):
+        if type(choices) == type([]):
+            choices = {i: i for i in choices}
         if choices and type(list(choices.keys())[0]) == int:
             c = self.getint(option, default, note_valid=note_valid)
         else:
diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py
index 58f668197..ae461f4b8 100644
--- a/klippy/extras/bltouch.py
+++ b/klippy/extras/bltouch.py
@@ -42,7 +42,7 @@ class BLTouchProbe:
         # Create an "endstop" object to handle the sensor pin
         self.mcu_endstop = ppins.setup_pin('endstop', config.get('sensor_pin'))
         # output mode
-        omodes = {'5V': '5V', 'OD': 'OD', None: None}
+        omodes = ['5V', 'OD', None]
         self.output_mode = config.getchoice('set_output_mode', omodes, None)
         # Setup for sensor test
         self.next_test_time = 0.
diff --git a/klippy/extras/display/hd44780.py b/klippy/extras/display/hd44780.py
index 9adfa20f7..2da49c51e 100644
--- a/klippy/extras/display/hd44780.py
+++ b/klippy/extras/display/hd44780.py
@@ -8,7 +8,7 @@ import logging
 
 BACKGROUND_PRIORITY_CLOCK = 0x7fffffff00000000
 LINE_LENGTH_DEFAULT=20
-LINE_LENGTH_OPTIONS={16:16, 20:20}
+LINE_LENGTH_OPTIONS=[16, 20]
 
 TextGlyphs = { 'right_arrow': b'\x7e' }
 
diff --git a/klippy/extras/display/hd44780_spi.py b/klippy/extras/display/hd44780_spi.py
index cd1d9e3ea..f21accbb4 100644
--- a/klippy/extras/display/hd44780_spi.py
+++ b/klippy/extras/display/hd44780_spi.py
@@ -9,7 +9,7 @@ import logging
 from .. import bus
 
 LINE_LENGTH_DEFAULT=20
-LINE_LENGTH_OPTIONS={16:16, 20:20}
+LINE_LENGTH_OPTIONS=[16, 20]
 
 TextGlyphs = { 'right_arrow': b'\x7e' }
 
diff --git a/klippy/extras/display/menu_keys.py b/klippy/extras/display/menu_keys.py
index 91a96e19f..8094c9964 100644
--- a/klippy/extras/display/menu_keys.py
+++ b/klippy/extras/display/menu_keys.py
@@ -18,7 +18,7 @@ class MenuKeys:
         # Register rotary encoder
         encoder_pins = config.get('encoder_pins', None)
         encoder_steps_per_detent = config.getchoice('encoder_steps_per_detent',
-                                                    {2: 2, 4: 4}, 4)
+                                                    [2, 4], 4)
         if encoder_pins is not None:
             try:
                 pin1, pin2 = encoder_pins.split(',')
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index 88aed25fe..c467e181e 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -252,7 +252,7 @@ class ProbeSessionHelper:
         self.sample_count = config.getint('samples', 1, minval=1)
         self.sample_retract_dist = config.getfloat('sample_retract_dist', 2.,
                                                    above=0.)
-        atypes = {'median': 'median', 'average': 'average'}
+        atypes = ['median', 'average']
         self.samples_result = config.getchoice('samples_result', atypes,
                                                'average')
         self.samples_tolerance = config.getfloat('samples_tolerance', 0.100,
diff --git a/klippy/extras/replicape.py b/klippy/extras/replicape.py
index ab501cafc..f7f7bb64b 100644
--- a/klippy/extras/replicape.py
+++ b/klippy/extras/replicape.py
@@ -160,7 +160,7 @@ class Replicape:
         printer = config.get_printer()
         ppins = printer.lookup_object('pins')
         ppins.register_chip('replicape', self)
-        revisions = {'B3': 'B3'}
+        revisions = ['B3']
         config.getchoice('revision', revisions)
         self.host_mcu = mcu.get_printer_mcu(printer, config.get('host_mcu'))
         # Setup enable pin
diff --git a/klippy/kinematics/cartesian.py b/klippy/kinematics/cartesian.py
index 9774672e2..0c4bb9255 100644
--- a/klippy/kinematics/cartesian.py
+++ b/klippy/kinematics/cartesian.py
@@ -23,7 +23,7 @@ class CartKinematics:
         self.dc_module = None
         if config.has_section('dual_carriage'):
             dc_config = config.getsection('dual_carriage')
-            dc_axis = dc_config.getchoice('axis', {'x': 'x', 'y': 'y'})
+            dc_axis = dc_config.getchoice('axis', ['x', 'y'])
             self.dual_carriage_axis = {'x': 0, 'y': 1}[dc_axis]
             # setup second dual carriage rail
             self.rails.append(stepper.LookupMultiRail(dc_config))
diff --git a/klippy/kinematics/hybrid_corexy.py b/klippy/kinematics/hybrid_corexy.py
index e852826af..265a0e6da 100644
--- a/klippy/kinematics/hybrid_corexy.py
+++ b/klippy/kinematics/hybrid_corexy.py
@@ -27,7 +27,7 @@ class HybridCoreXYKinematics:
         if config.has_section('dual_carriage'):
             dc_config = config.getsection('dual_carriage')
             # dummy for cartesian config users
-            dc_config.getchoice('axis', {'x': 'x'}, default='x')
+            dc_config.getchoice('axis', ['x'], default='x')
             # setup second dual carriage rail
             self.rails.append(stepper.PrinterRail(dc_config))
             self.rails[1].get_endstops()[0][0].add_stepper(
diff --git a/klippy/kinematics/hybrid_corexz.py b/klippy/kinematics/hybrid_corexz.py
index 58e6b0d39..2d89e3f7b 100644
--- a/klippy/kinematics/hybrid_corexz.py
+++ b/klippy/kinematics/hybrid_corexz.py
@@ -27,7 +27,7 @@ class HybridCoreXZKinematics:
         if config.has_section('dual_carriage'):
             dc_config = config.getsection('dual_carriage')
             # dummy for cartesian config users
-            dc_config.getchoice('axis', {'x': 'x'}, default='x')
+            dc_config.getchoice('axis', ['x'], default='x')
             # setup second dual carriage rail
             self.rails.append(stepper.PrinterRail(dc_config))
             self.rails[2].get_endstops()[0][0].add_stepper(
diff --git a/klippy/mcu.py b/klippy/mcu.py
index 6b106245b..23ba07173 100644
--- a/klippy/mcu.py
+++ b/klippy/mcu.py
@@ -574,9 +574,8 @@ class MCU:
         restart_methods = [None, 'arduino', 'cheetah', 'command', 'rpi_usb']
         self._restart_method = 'command'
         if self._baud:
-            rmethods = {m: m for m in restart_methods}
             self._restart_method = config.getchoice('restart_method',
-                                                    rmethods, None)
+                                                    restart_methods, None)
         self._reset_cmd = self._config_reset_cmd = None
         self._is_mcu_bridge = False
         self._emergency_stop_cmd = None