在Python中使用变量赋值中的条件

2024-05-19 03:06:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Python中使用变量赋值中的条件,就像在C中那样。在

myLang = lang=='en' ? 'en' : lang=='ger' ? 'de' : 'fa';

我找到了this question,它说Python有这种类型的任务。在

^{pr2}$

但我不明白我的案子是怎么回事。 在Python中可以做类似的事情吗?在


Tags: 类型langdethis条件事情enfa
3条回答

是的,有可能:

myLang = 'en' if lang == 'en' else 'de' if lang == 'ger' else 'fa'

一个条件表达式的真和假表达式只是更多的表达式。你可以在那个地方放另一个条件表达式。在

如果这样更容易阅读,可以在表达式周围加上括号,以便直观地对它们进行分组。Python不需要这些,因为条件表达式有一个very low operator precedence;只有lambda更低。在

加上括号,它将读作:

^{pr2}$

但是,有更好的方法将lang映射到两个字符的字符串。使用字典,例如:

language_mapping = {'en': 'en', 'ger': 'de'}
myLang = language_mapping.get(lang, 'fa')

将默认为'fa',除非lang值在映射中,使用^{} method。在

C代码解释为:

myLang = lang=='en' ? 'en' : (lang=='ger' ? 'ge' : 'fa');

所以对Python也一样:

^{pr2}$

或者没有括号:

myLang = 'en' if lang=='en' else 'ge' if lang=='ger' else 'fa'

用代码来做这件事的问题是,好吧,是硬编码的。改为在数据中执行。在

langmap = {
  'en': 'en',
  'ger': 'ge'
}

 ...
myLang = langmap.get(lang, 'fa')
 ...

虽然德语的缩写是“de”(代表“deutsche”),但不是“ge”。在

相关问题 更多 >

    热门问题