gpt4 book ai didi

python - 在第三个 float 之后在新行上拆分字符串 - Python

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

我正在尝试将单个字符串分成不同的行。

我有以下单行字符串:

h = 
John_______________7.3 7.9 9.7 Peter-Pan__________5.1 6.3 6.6
Steve Stevenson____5.1 5.3 5.5 Johnny Palmer______8.3 8.8 9.2
Randy______________8.0 8.0 8.0

我正在尝试获取此输出:

h = 
John_______________7.3 7.9 9.7
Peter-Pan__________5.1 6.3 6.6
Steve Stevenson____5.1 5.3 5.5
Johnny Palmer______8.3 8.8 9.2
Randy______________8.0 8.0 8.0

Where when i select h[0] the output should be:
John
Peter-Pan
Steve Stevenson
Johnny Palmer
Randy

如果信息采用上述格式,我已经编写了代码来处理信息我已经尝试了几个小时很多不同的事情,但都没有成功。这让我可以尝试编写新代码来处理现在的信息。

我出于这个目的展示了我当前的代码,但如果可能获得所需的输出,它可能不相关。

在代码中,我试图在每个名称和连续三个 float 上拆分一个字符串。我现在的代码,虽然与许多其他尝试不同,但将每三个等级隔离在列表中的单个项目中,并将名称隔离为单个项目,但在不应该分开的地方拆分名称。我不能再次使用 iter、map 和 zip,因为每个名称都不同:

replacechar = h.replace(' ', '_')
student_list = replacechar.split('_')
isolated_grades = [item for item in student_list if
item.strip('abcdefghijklmnopqrstuvwxyz_-0123456789') == '.']
isolated_names = [item for item in student_list if not
item.strip('abcdefghijklmnopqrstuvwxyz_-0123456789') == '.']
isolated_names2 = ' '.join(isolated_names)
isolated_names3 = isolated_names2.split()
i = iter(isolated_grades)
f = map(" ".join, zip(i, i, i))

我尝试使用空格或“_”等分隔符进行拆分。我尝试替换字符以拆分并尝试基于 .isalpha 或 .isdigit 定义每个项目。但是我无法成功,因为每个名字的单词长度都不同,并且可能包含也可能不包含空格或破折号。此外,第一个 float 通过下划线与名称相连。我的大脑重载了现在我的目标是让每个有成绩的人都在新的一行上,这样我就可以选择姓名和成绩:

最佳答案

您可以使用提供模式匹配的正则表达式。 '[A-Za-z -]+_+[0-9 的正则表达式。 ]+' 应该匹配名称、下划线、分数模式。然后,re.findall('[A-Za-z -]+_+[0-9. ]+', string) 将返回字符串列表。您可以使用 '\n'.join(list_of_results) 将其组合回换行符分隔的字符串。

Python 正则表达式文档:https://docs.python.org/3/library/re.html

关于python - 在第三个 float 之后在新行上拆分字符串 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402581/

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