首页 > 解决方案 > 根据用户在 python 中输入的内容,是否有一种方法可以拆分溢出的方法?

问题描述

user_lst = list(map(int,input("Numbers: ").split(" ")))

所以该行只是将列表映射到相应的int值,但是有没有办法让该split方法检测它是否在 a 或 " " 或任何其他字符上分割?

例如,如果用户输入

1,2,3,4

或者

1 2 3 4

或者

1-2-3-4

我希望它按指定的拆分字符拆分列表。

我试过这个:

user_lst = list(map(int,input("Numbers: ").split(" ","-",",")))

但显然split最多只需要两个参数。但即使只有两个参数,它仍然会给出该错误。

我知道您可以使用一些if语句和索引来首先检查用户用来分隔它的内容,但我只希望它最多在一两行上完成。

标签: pythonpython-3.xmethodssplitmapping

解决方案


您可以只使用正则表达式split函数而不是基本.split方法:

import re

PATTERN = r"[-, ]"

user_lst = list(map(int, re.split(PATTERN, input("Numbers: "))))

您可以更改PATTERN为与您希望能够拆分的符号匹配的任何正则表达式模式。更多关于正则表达式模式的信息,您可以在regex101上使用自己的模式


推荐阅读