Python switch case语句每个个案返回2个值,但未排序

时间:2019-02-17 02:38:00

标签: python

我已经在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)时,结果不是按顺序的; prototypeV230V的值是互换的。在某些情况下,我在LOOONG TEXT中得到了Prototype,在其他情况下,V230V具有了LOOONG TEXT

有什么办法可以强制case语句以固定顺序返回值?

1 个答案:

答案 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")