gpt4 book ai didi

python - 将字符串拆分为固定数量的标记列表的简洁方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:15 25 4
gpt4 key购买 nike

我正在编写一段代码,需要将连字符分隔的字符串拆分为最多三个标记。如果拆分后的标记少于三个,则应附加足够数量的空字符串以形成三个标记。

例如,'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 函数对于这个小任务来说似乎过于冗长。是否有一种 Pythonic 的方式来编写它,或者是否有一些 Python 函数或类专门用来完成这种使代码更简洁的任务?

最佳答案

您可以使用一个简单的 while 循环:

def three_tokens(s):
tokens = s.split('-', 2)
while len(tokens) < 3:
tokens.append('')
return tokens

或者用计算出的空字符串数量扩展列表:

def three_tokens(s):
tokens = s.split('-', 2)
tokens.extend([''] * (3 - len(tokens)))
return tokens

或者使用串联,这样你就可以把它放在返回语句中:

def three_tokens(s):
tokens = s.split('-', 2)
return tokens + [''] * (3 - len(tokens))

关于python - 将字符串拆分为固定数量的标记列表的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308761/

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