gpt4 book ai didi

python - 使用 python 重写 if-else 语句,如 javascript 对象字面量

转载 作者:行者123 更新时间:2023-12-04 07:45:39 24 4
gpt4 key购买 nike

这是 javascript 中 if-else 语句的示例。

function getTranslation(rhyme) {
if (rhyme.toLowerCase() === "apples and pears") {
return "Stairs";
} else if (rhyme.toLowerCase() === "hampstead heath") {
return "Teeth";
} else if (rhyme.toLowerCase() === "loaf of bread") {
return "Head";
} else if (rhyme.toLowerCase() === "pork pies") {
return "Lies";
} else if (rhyme.toLowerCase() === "whistle and flute") {
return "Suit";
}

return "Rhyme not found";
}
一种更优雅的方法是使用 object 重写 if-else 实现。
function getTranslationMap(rhyme) {
const rhymes = {
"apples and pears": "Stairs",
"hampstead heath": "Teeth",
"loaf of bread": "Head",
"pork pies": "Lies",
"whistle and flute": "Suit",
};

return rhymes[rhyme.toLowerCase()] ?? "Rhyme not found";
}
可以使用 python 编写类似 javascript 对象文字的优雅代码吗?
我正在使用 python 3.8
Javascript 代码段来自以下链接;
https://betterprogramming.pub/dont-use-if-else-and-switch-in-javascript-use-object-literals-c54578566ba0

最佳答案

Python等价物:

def get_translation_map(rhyme): 
rhymes = {
"apples and pears": "Stairs",
"hampstead heath": "Teeth",
"loaf of bread": "Head",
"pork pies": "Lies",
"whistle and flute": "Suit"
}
return rhymes.get(rhyme.lower(), "Rhyme not found")
如果您不知道 dict 的内容,另一个有用的变体并希望确保始终返回一个值:
  v = adict.get('whatever') or 'default'
即使 dict 中有一个值为 None 的键,也会得到一个默认值。

关于python - 使用 python 重写 if-else 语句,如 javascript 对象字面量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67205350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com