python - 在第三个浮点后的新行上分割字符串 - Python

标签 python string list split

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

我有以下单行字符串:

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 - 在第三个浮点后的新行上分割字符串 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402581/

相关文章:

java - Part 类型中的方法 setText(String) 不适用于参数

r - 使用循环或应用覆盖多个字符串变量

Java比较两个List的对象值?

Python/DJango属性错误: Model object has not attribute objects

python - 按时间段迭代数据帧 block

python - 使用电子表格数据时如何避免嵌套循环?

python - 任何 python 模块都可以支持枚举 2 个列表并执行 "cross multiplication"?

python - 如何对 Pandas 数据透视表中的值进行排序?

c# - 过滤字符串并从中创建新的

python - 列表列表更改意外地反射(reflect)在子列表中