多次拆分字符串怎么写

该问题来自社区帖: https://bbs.csdn.net/topics/615387702.为符合问答规范, 该问题经过ChatGPT优化
请帮我将以下字符串拆分成日期和数量两列:

2023-05-14完成9件 ,2023-05-15完成10件 ,2023-05-16完成11件 

期望结果为:

日期            数量

2023-05-14  9

2023-05-15  10

2023-05-16 11

我已尝试使用逗号将原文本拆分成三个句子,但我需要进一步将每个句子拆分成日期和数量。请问该如何实现?

可以先将原始字符串按照逗号分割成多个子串,然后再对每个子串进行分解,得到日期和数量两个部分。如下所示:

python
s = "2023-05-14完成9件,2023-05-15完成10件,2023-05-16完成11件"
items = s.split(",")
for item in items:
    date, _, count_str = item.partition("完成")
    count = int(count_str[:-1])
    print(date, count)

运行结果为:

2023-05-14 9
2023-05-15 10
2023-05-16 11
在上述代码中,首先使用字符串的split方法将原始字符串按照逗号分割成多个子串,保存在一个列表中。然后,对每个子串依次进行处理。使用字符串的partition方法将子串按照“完成”字符串拆分成日期、一个无用的中间部分(用_表示)和数量三个部分。使用切片操作去掉数量末尾的“件”字符,并将数量部分转换为整数型。最后,将日期和数量两个部分打印出来即可。

需要注意的是,上述代码假定所有子串都按照“日期完成数量件”的格式排列,如果格式不一致,可能导致程序出现错误。如果需要进一步提高代码的健壮性,需要对输入字符串做更加严格的格式校验。