Python字符串获取第一个逗号之前的前导字符

Python字符串获取第一个逗号之前的前导字符,python,arrays,regex,string,Python,Arrays,Regex,String,我有以下字符串: strIn = "Head,0.000235532,0.43656735" 我想从中检索一个变量type=“Head”和一个数组 vals=[0.000235532,0.43656735] 如何使用Python实现这一点?我曾考虑使用strIn[0]、…、strIn[5]来获取类型,但后来我意识到我将获得不同长度的类型。谢谢。如果您使用的是Python 3,您可以 type_, *vals = strIn.split(',') vals = [float(v) for v i

我有以下字符串:

strIn = "Head,0.000235532,0.43656735"
我想从中检索一个变量
type=“Head”
和一个数组
vals=[0.000235532,0.43656735]


如何使用Python实现这一点?我曾考虑使用strIn[0]、…、strIn[5]来获取类型,但后来我意识到我将获得不同长度的类型。谢谢。

如果您使用的是Python 3,您可以

type_, *vals = strIn.split(',')
vals = [float(v) for v in vals]  # Convert list of strings to list of floats.
这用于根据提供的字符将字符串拆分为一个列表,然后使用Python 3的扩展元组解包将第一个值放入
类型
,其余值放入
VAL
。有关如何使用元组解包的更多讨论,请参见

如果您使用的是Python 2,则无法使用扩展的解包语法,因此必须添加额外的步骤:

str_list = strIn.split(',')
type_ = str_list[0]
vals = [float(v) for v in str_list[1:]]

在python2中,首先使用
进行拆分,
然后使用切片和
浮动功能:

>>> none=strIn.split(',')[0]
>>> none
'Head'
>>> vals=map(float,strIn.split(',')[1:])
>>> vals
[0.000235532, 0.43656735]

因为
类型是一个内置名称,建议不要使用它

str.split
将是一个很好的起点。请注意,
*vals
将是一个字符串列表。@Menegazzo True。我添加了一行代码以将其转换为浮点列表。@jds我认为它也适用于Python 2.7。试一试。@jds为Python 2添加了一个版本。
type
是一个特殊的关键字,该代码可能会产生令人惊讶的结果;-)