【发布时间】:2014-03-10 18:50:04
【问题描述】:
我正在编写一段代码,需要将连字符分隔的字符串拆分为最多三个标记。如果拆分后的token少于3个,则需要追加足够数量的空字符串才能组成3个token。
例如,'foo-bar-baz' 应拆分为 ['foo', 'bar', 'baz'],但 foo-bar 应拆分为 ['foo', 'bar', '']。
这是我写的代码。
def three_tokens(s):
tokens = s.split('-', 2)
if len(tokens) == 1:
tokens.append('')
tokens.append('')
elif len(tokens) == 2:
tokens.append('')
return tokens
print(three_tokens(''))
print(three_tokens('foo'))
print(three_tokens('foo-bar'))
print(three_tokens('foo-bar-baz'))
print(three_tokens('foo-bar-baz-qux'))
这是输出:
['', '', '']
['foo', '', '']
['foo', 'bar', '']
['foo', 'bar', 'baz']
['foo', 'bar', 'baz-qux']
我的问题是我编写的three_tokens 函数对于这个小任务来说似乎太冗长了。有没有一种 Python 的方式来写这个,或者有一些 Python 函数或类专门用于完成这种使代码更简洁的任务?
【问题讨论】:
标签: python python-3.x