我在按列出的顺序、姓名和考试分数拆分我的名字时遇到问题。
我在我的代码中执行了以下操作: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_index
、name
和 names_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/