Skip to main content
 首页 » 编程设计

python之另一个列表理解问题

2025年05月04日19mfrbuaa

我有这个:

    if Setting["Language"] == "en": 
        f.m_radioBox3.SetSelection(0) 
    elif Setting["Language"] == "pt": 
        f.m_radioBox3.SetSelection(1) 
    elif Setting["Language"] == "fr": 
        f.m_radioBox3.SetSelection(2) 
    elif Setting["Language"] == "es": 
        f.m_radioBox3.SetSelection(3) 

然后我这样做了:

    Linguas = ["en","pt","fr","es"] 
    a = 0 
    for i in Linguas: 
        if i == Setting["Language"]: 
            f.m_radioBox3.SetSelection(a) 
        a += 1 

是否可以进一步简化它并使其成为一行?

请您参考如下方法:

Linguas = ["en","pt","fr","es"] 
 
if Setting["Language"] in Linguas: 
    f.m_radioBox3.SetSelection(Linguas.index(Setting["Language"])) 

或者你可以用字典来做:

Linguas = {"en":0,"pt":1,"fr":2,"es":3} 
 
if Setting["Language"] in Linguas: 
    f.m_radioBox3.SetSelection(Linguas[Setting["Language"]])