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

3
我有以下字符串:
strIn = "Head,0.000235532,0.43656735"

我希望从中获取变量type = "Head"和数组vals = [0.000235532,0.43656735]。如何使用Python实现?我考虑使用strIn[0],...,strIn[5]来获取类型,但是后来意识到我会得到不同长度的类型。谢谢。

1
str.split 是一个很好的起点。 - Kevin
2个回答

4
如果您正在使用Python 3,您可以执行以下操作:
type_, *vals = strIn.split(',')
vals = [float(v) for v in vals]  # Convert list of strings to list of floats.

这里使用 str.split 将字符串基于指定字符分割成一个列表,然后使用 Python 3 的扩展元组解包将第一个值放入 type_ 中,其余的值放入 vals 中。要了解如何使用元组解包,请参见 此答案
如果您使用的是 Python 2,则无法使用扩展解包语法,因此需要添加一个额外的步骤:
str_list = strIn.split(',')
type_ = str_list[0]
vals = [float(v) for v in str_list[1:]]

请注意,*vals 将是一个字符串列表。 - Fabio Menegazzo
@Menegazzo 确实。我添加了一行代码将其转换为浮点数列表。 - Roger Fan
@jds 我认为它在 Python 2.7 上也能工作。试一下就知道了。 - Fabio Menegazzo
@jds 添加了 Python 2 的版本。 - Roger Fan

0

由于您使用的是Python2,因此首先使用,进行分割,然后使用切片和float函数:

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

由于type是一个内置名称,建议不要使用它!


"type" 是一个特殊的关键字,代码可能会有令人惊讶的后果;-) - Stanislav Shabalin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接