gpt4 book ai didi

python - 将列表中的每个字符串拆分为数字和非数字部分

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:50 27 4
gpt4 key购买 nike

我有这个字符串列表:

x = ['+27', '05', '1995 F']

我想要一些输出这个的代码:

['+', '27', '05', '1995', 'F']

我考虑在最后一个元素上使用 .split() 函数,所以我写了这段代码:

x=['+27', '05', '1995 F']
x[2]=x[2].split()

这个输出:

['+27', '05', ['1995', 'F']]

如何确保第二个元素不是子列表,而是输出这个?

['+27', '05','1995','F']

我应该使用 insertdel 吗?

我使用 insertdel 为第一个元素写了这个:

x=x.split("/")
x.insert(0,x[0][0])
x.insert(1,x[1][1:])
del x[2]

这个输出:

['+', '27', '05', '1995 F']

有没有更好的办法?

最佳答案

这是一个使用 itertools.groupby() 的解决方案和 str.isdigit()list comprehension :

>>> from itertools import groupby
>>> x=['+27', '05', '1995 F']
>>> [''.join(g).strip() for s in x for k, g in groupby(s, str.isdigit)]
['+', '27', '05', '1995', 'F']

其工作原理是根据字符是否为数字将 x 中的每个字符串拆分为字符组,然后将这些组连接回字符串,最后从结果字符串中去除空格。

如您所见,与目前介绍的其他解决方案不同,它将“+27”拆分为“+”和“27”(如您的问题所述)。

关于python - 将列表中的每个字符串拆分为数字和非数字部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910379/

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