gpt4 book ai didi

python - 如何将字符串拆分为奇数序列?

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

我正在尝试找到一种将数字拆分为奇数序列列表的方法:

num = "57483795478973"

for digit in num:
if int(digit)%2==0:
list_a = str.split(num,digit)

print (list_a)

但我得到的结果是

['574', '379547', '973']

其中包括偶数,我不明白我做错了什么。

最佳答案

这是一个使用 re 的解决方案模块:

>>> import re
>>> re.split('[02468]', '57483795478973')
['57', '', '3795', '7', '973']

在这种情况下,第一个参数实际上是一个分隔符列表 - 在您的例子中是偶数。如果您想跳过空结果:

>>>[r for r in re.split('[02468]', '57483795478973') if r]
['57', '3795', '7', '973']

这是一种手动计算的方法,使用 generator :

def splitToOddSeqs(numbers):
seq = ""
for n in numbers:
if n not in "02468":
seq += n # as long as we have odd numbers, we accumulate
else:
if seq:
yield seq # we've found an even number - return one sequence
seq = ""

if seq:
yield seq # return last one (when input ends with odd digit)

示例用法:

>>> list(splitToOddSeqs('57483795478973'))
['57', '3795', '7', '973']

关于python - 如何将字符串拆分为奇数序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26810151/

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