gpt4 book ai didi

python - 从split()获取最少数量的元素

转载 作者:行者123 更新时间:2023-11-28 21:38:07 26 4
gpt4 key购买 nike

设想一个包含(逗号)分隔元素的字符串,例如版本字符串

version_str = "3,1,4,159"

可能或多或少包含一个或多个元素:
version_str = "3,1,4"


version_str = "3,1,4,159,appendix"

我想把这些元素分开如下:
major, minor, patch, revision, appendix = version_str.split(',')

当然,我会得到一个 ValueError,因为提取的元素数并不总是匹配的。
是否有方法可以 extend得到 split()的结果,例如:
version_str.split(',', min_elements=5)


version_str.split(',').extend(5, default='')

?
例子:
>>> '3,1,4'.split(',', min_elements=5)
['3', '1', '4', '', '']

>>> '3,1,4,159,dev'.split(',', min_elements=5)
['3', '1', '4', '159', 'dev']

当然,我可以在之后手动添加元素或有条件地读取元素,但我对pythonic one行很感兴趣。

最佳答案

在一行中使用zip_longest

from itertools import zip_longest
major, minor, patch, revision, appendix = [x + y for x, y in zip_longest(
version_str.split(','), [''] * 5, fillvalue='')]

或:
split = version_str.split(',')
major, minor, patch, revision, appendix = split + [''] * (5 - len(split))

关于python - 从split()获取最少数量的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48640403/

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