小编Raz*_*Raz的帖子

符合条件表达式或函数 - Pythonic?

我有一种情况,我想有条件地从报告的'@'符号位置切片一个字符串; 条件是:如果'@'在那里,则对字符串进行切片,否则保持不变.我想到了两种方法,一种是使用函数,另一种是使用内联条件表达式.哪种方法最Pythonic?

使用功能

>>> def slice_from_at(inp):
...     res = inp.find('@')
...     if res == -1:
...         return None
...     else:
...         return res     
>>> c = 'agent_address@agent_address'
>>> c[:slice_from_at(c)]
... 'agent_address'
Run Code Online (Sandbox Code Playgroud)

使用内联条件表达式

>>> c = 'agent_address@agent_address'
>>> c[:None if c.find('@') == -1 else c.find('@')]
... 'agent_address'
Run Code Online (Sandbox Code Playgroud)

虽然使用内联条件表达式更简洁,但有些人可能认为更经济 - 函数方法更具Pythonic,因为它更具可读性?

python coding-style ternary-operator conditional-expressions

3
推荐指数
1
解决办法
399
查看次数