2024-05-19 03:06:43 发布
网友
我想在Python中使用变量赋值中的条件,就像在C中那样。在
myLang = lang=='en' ? 'en' : lang=='ger' ? 'de' : 'fa';
我找到了this question,它说Python有这种类型的任务。在
但我不明白我的案子是怎么回事。 在Python中可以做类似的事情吗?在
是的,有可能:
myLang = 'en' if lang == 'en' else 'de' if lang == 'ger' else 'fa'
一个条件表达式的真和假表达式只是更多的表达式。你可以在那个地方放另一个条件表达式。在
如果这样更容易阅读,可以在表达式周围加上括号,以便直观地对它们进行分组。Python不需要这些,因为条件表达式有一个very low operator precedence;只有lambda更低。在
lambda
加上括号,它将读作:
但是,有更好的方法将lang映射到两个字符的字符串。使用字典,例如:
lang
language_mapping = {'en': 'en', 'ger': 'de'} myLang = language_mapping.get(lang, 'fa')
将默认为'fa',除非lang值在映射中,使用^{} method。在
'fa'
C代码解释为:
myLang = lang=='en' ? 'en' : (lang=='ger' ? 'ge' : 'fa');
所以对Python也一样:
或者没有括号:
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”。在
是的,有可能:
一个条件表达式的真和假表达式只是更多的表达式。你可以在那个地方放另一个条件表达式。在
如果这样更容易阅读,可以在表达式周围加上括号,以便直观地对它们进行分组。Python不需要这些,因为条件表达式有一个very low operator precedence;只有
lambda
更低。在加上括号,它将读作:
^{pr2}$但是,有更好的方法将
lang
映射到两个字符的字符串。使用字典,例如:将默认为} method 。在
'fa'
,除非lang
值在映射中,使用^{C代码解释为:
所以对Python也一样:
^{pr2}$或者没有括号:
用代码来做这件事的问题是,好吧,是硬编码的。改为在数据中执行。在
虽然德语的缩写是“de”(代表“deutsche”),但不是“ge”。在
相关问题 更多 >
编程相关推荐