需要使用拆分函数的帮助吗

2024-06-02 07:57:23 发布

您现在位置:Python中文网/ 问答频道 /正文

此函数用于将字符串中零之间的数字相加。例如('25025')变为25+25。但是,如果发送给测试字符串的字符串参数的字符串的开头和/或结尾处有一个0,它将在列表的开头/结尾处创建一个空格,并且不会进行计算。我可以向这个函数添加什么来过滤0和空格

def test_one(test_string):
      test = test_string.split("0")
      numbers=[int(x) for x in test]
      print(sum(numbers))

test_one('2022022022')
test_one('02022020')
test_one('25025')

Tags: 函数字符串test列表参数stringdef数字
3条回答

如果您同意保持当前的方法,那么应该这样做:

test = test_string.strip('0').split("0")
numbers = [int(x) for x in test]

否则,您可以在生成器表达式中使用理解:

sum(int(x) for x in test_string.strip('0').split("0"))
#                                 ^

可以使用string方法之一strip()/rstrip()/lstrip()

>>> s = '0138076023'
>>> s.lstrip('0')
'138076023'
>>> s.strip('0')
'138076023'
>>> s = '   asasd   '
>>> s.strip()
'asasd'
>>>   

关于这些方法的文档可以在here

替换此项:

numbers=[int(x) for x in test]

有了这个:

numbers=[int(x) for x in test if x]

这段代码是不言自明的:将x转换为整数并将其附加到列表ifbool(x)True,因此跳过所有空字符串

str.split("0")"0"视为分隔符,不在结果中包含它的任何出现。查看the docs中的一些示例和更多说明

相关问题 更多 >