输入的多重分割?

2024-03-28 20:13:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道您可以使用split()将一个用户输入拆分为两个,但是如何分割包含多个变量的输入呢?例如: 用户输入:

Shawn=14:soccer#2991842

我想做的是:

^{pr2}$

做这种事最好的方法是什么?在


Tags: 方法用户splitsoccerpr2shawn
3条回答

我认为Regex在这里最有效:

>>> from re import split
>>> mystr = "Shawn=14:soccer#2991842"
>>> split("\W", mystr)
['Shawn', '14', 'soccer', '2991842']
>>> lst = split("\W", mystr)
>>> name = lst[0]
>>> name
'Shawn'
>>> age = lst[1]
>>> age
'14'
>>> course = lst[2]
>>> course
'soccer'
>>> idnumber = lst[3]
>>> idnumber
'2991842'
>>>

此外,以上是一个逐步演示。你可以做的就是:

^{pr2}$
str = 'Shawn=14:soccer#2991842'

keys = ['name', 'age', 'course', 'idnumber']
values = re.split('[=:#]', str)

print dict(zip(keys, values))
Out[114]: {'age': '14', 'course': 'soccer', 'idnumber': '2991842', 'name': 'Shawn'}

如果您可以将它们存储在字典键下,可以使用named group references

import re
x='shawn=14:soccer#2991842'
re.match(r'(?P<name>.*?)=(?P<age>.*):(?P<course>.*?)#(?P<idnumber>.*)', x).groupdict()
{'idnumber': '2991842', 'course': 'soccer', 'age': '14', 'name': 'shawn

相关问题 更多 >