我已经在Python中实现了switch case语句,并且希望每个case返回两个值。我得到未排序的结果,并且在调试时我看到impl_switch曾经以未排序的形式创建,即冗长的文本和“ ST”互换顺序。
def FindPrototype(var):
impl_switch = {
"WG_JFN_DOL": {"LOOONG TEXT 4", "ST"},
"WG_JFN_RDOL": {"LOOONG TEXT 13", "ST"},
"WG_JFN_VSD": {"LOOONG TEXT 2", "0"},
"WG_JFN_VSD_UNI": {"LOOONG TEXT 1", "ST"}
}
return impl_switch.get(var,"Empty")
当我运行Prototype, V230V = FindPrototype(var)
时,结果不是按顺序的; prototype
和V230V
的值是互换的。在某些情况下,我在LOOONG TEXT
中得到了Prototype
,在其他情况下,V230V
具有了LOOONG TEXT
。
有什么办法可以强制case语句以固定顺序返回值?
答案 0 :(得分:2)
返回(tuples)
而不是{sets}
,以保留值的顺序。集是唯一值的无序集合;重复的值被删除,并且不保留顺序。元组就像列表,但不可变。项目按顺序存储,可以通过数字索引访问,并且允许重复。
"WG_JFN_DOL": ("LOOONG TEXT 4", "ST"),
"WG_JFN_RDOL": ("LOOONG TEXT 13", "ST"),
"WG_JFN_VSD": ("LOOONG TEXT 2", "0"),
"WG_JFN_VSD_UNI": ("LOOONG TEXT 1", "ST")