python - 如何在 python 中将字符串拆分为多个部分?

标签 python string python-2.7 split

我在按列出的顺序、姓名和考试分数拆分我的名字时遇到问题。

我在我的代码中执行了以下操作:print repr(names) 循环获取以下 6 行数据

'1 Name 559/1 '
'2 Name 484/1 '
'3 Name N'ame 444/2 '
'4 Name 400/1 '
'5 Name Name 928/5 '
'6 Name Name-Name 1292/10 '

我希望能够将它们分开,但我收到一条错误消息:AttributeError: 'str' object has no attribute 'lsplit'

我尝试过使用 lsplit、rsplit 和 split,但我无法让它工作...

最终结果名称将变成 3 个变量:names_indexnamenames_score

有人知道我怎样才能做到这一点吗?

谢谢 - Hyflex

编辑

for item in listitems:
    if item.find("strong"):
        names = str(item.text)
        names = items .split("\n")
        for name in names:
            clean_name = name.lstrip(" ")
            print repr(clean_name)
            student_number = clean_name.lsplit(" ", 1)
            student_score = clean_name.rsplit(" ", 1)
            #student_name = clean_name.lsplit(" ", 1) # Unsure how to get the last part..

最佳答案

没有 str.lsplit 因为 str.split 已经从左边开始了。

对于每个字符串,只需调用 .split(),您将得到一个包含 [names_index, name, names_score] 的列表

如果模式是number/words/more numbers,那么你可以使用正则表达式:

>>> import re
>>> filter(None, re.split(r'(\d+) (\w.*) (\d.*)', '1 Name 559/1 '))
['1', 'Name', '559/1 ']
>>> filter(None, re.split(r'(\d+) (\w.*) (\d.*)', '6 Name Name-Name 1292/10 '))
['6', 'Name Name-Name', '1292/10 ']

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

相关文章:

python - 装饰器中的无限递归(类似乎是从自身继承的)

javascript - 如何让 lodash _.replace 字符串中所有出现的地方?

string - 从全名字符串知道路径是文件夹还是文件?

python-2.7 - Python - 列表中重复项的索引

python-2.7 - 木星|内核似乎已经死了。它将自动重启 |

python - 使用lxml查找根节点名称

python - Python For 循环的替代方案以获得更快的结果

java - 在 Java 中拆分字符串的最有效方法

python - 如何让 Python 除以 -0.0 和 0.0 分别得到 -Inf 和 Inf?

android - 在移动应用程序中结合 html 前端和 python "back-end"