条件变量的更多pythonic方式

蒂鲁文卡丹

这就是我想要做的:

  1. 少争论
  2. 根据参数,组成一个字符串
  3. 返回字符串

但是,为此,我可以看到3种可能的方式:

def form_statement(subject, verb, object):
    greetings = ""
    if subject in ("Paul", "Raj"):
        greetings = "mister"
    return "%s %s %s %s" % (subject, verb, object, greetings)

第二种方法是:

def form_statement(subject, verb, object):
    if subject in ("Paul", "Raj"):
        greetings = "mister"
    else:
        greetings = ""
    return "%s %s %s %s" % (subject, verb, object, greetings)

第三种方法是:

def form_statement(subject, verb, object):
    greetings = "mister" if subject in ("Paul", "Raj") else ""
    return "%s %s %s %s" % (subject, verb, object, greetings)

还有其他更好的方法来做这样的事情吗?现在,我选择第一种方法,因为获取问候语字符串的“处理”本身就是一个函数,当使用第三种方法时,该行将超过80个字符。

编辑:似乎有人对我要使用哪种更好感到困惑(因为他们投票赞成基于观点的投票)。在这里,我试图找到一种更好的方法来做事,并举例说明我可以考虑的事情,以免其他人给出答案。正如答案之一所述,我发现在类似情况下使用字典对我来说更好。

卡斯拉文

一种Python方式是使用字典来保存主题及其亲属greetings,然后使用dict.get()也接受第二个参数的方法,如果字典中缺少键,则返回第二个参数。

main_dict = {"Paul":"mister", "Raj": "mister"}

def form_statement(main_dict, subject, verb, object):
    greetings = main_dict.get(subject, '')
    return "{} {} {} {}".format(subject, verb, object, greetings)

当您处理较大的数据集时,此方法将显示其强大功能。因为字典使用哈希表,并且其索引顺序为O(1)。同样,您可以为每个动词使用不同的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

嵌套循环的更多pythonic方式

还有更多的pythonic方式可以编写仅更新变量的while循环吗?

更多pythonic方式-熊猫数据框操作

X次运行流程的更多Pythonic方式

更多 Pythonic 的 If-Else-Pass 编写方式

“默认”条件语句的 Pythonic 方式?

以两个(或更多)其他变量为条件指定`str`的更优雅的方式

是否有使用Beautifulsoup解析表的更多pythonic方式

更多的pythonic方式来处理嵌套try ...除了块?

更多使用pythonic /更好的方式编写此内容?

编写非对称 if-else 语句的更多“Pythonic”方式

接近多个条件函数的最pythonic方式

基于多个条件设置值 Pythonic 方式

如何以pythonic的方式处理交换变量?

使用 if 条件的更有效的 Pythonic 方式

pythonic方式有条件地检查多列

如果__init__中没有Pythonic方式设置变量

pythonic的方式做N次没有索引变量?

是否有内置或更多Pythonic方式尝试将字符串解析为整数

item_list [-1]的更多pythonic方式!= item_list [-2]?

Python:向pandas数据框添加条件列,更多pythonic解决方案?

如何以有效的方式以pythonic方式将每个元素嵌套列表到变量

更多的pythonic /高效循环嵌套

每行之后有更多的pythonic方式遍历两个列表切换方向吗?

有没有更多的“ pythonic”方式从具有自定义分隔符的列表生成字符串

生成对的pythonic方式

可选导入的pythonic方式

Pythonic的方式呢?

Pythonic方式反转匹配