【问题标题】:Python string get leading characters up to first commaPython字符串获取前导字符直到第一个逗号
【发布时间】:2015-02-02 15:36:08
【问题描述】:

我有以下字符串:

strIn = "Head,0.000235532,0.43656735"

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

如何使用 Python 做到这一点?我考虑过使用 strIn[0],...,strIn[5] 来获取类型,但后来我意识到我会得到各种长度的类型。谢谢。

【问题讨论】:

  • str.split 将是一个很好的起点。

标签: python arrays regex string


【解决方案1】:

在 python2 中,首先使用, 分割,然后使用切片和float 函数:

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

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

【讨论】:

  • type 是一个特殊的关键字,该代码可能会产生令人惊讶的后果 ;-)
【解决方案2】:

如果你使用的是 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。有关如何使用元组解包的更多讨论,请参阅this answer

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

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

【讨论】:

  • 请注意,*vals 将是一个字符串列表。
  • @Menegazzo 真的。我添加了一行将其转换为浮点数列表。
  • @jds 我认为它也适用于 Python 2.7。试试看吧。
  • @jds 添加了 Python 2 的版本。
猜你喜欢
  • 1970-01-01
  • 2012-05-19
  • 2022-06-17
  • 2013-10-19
  • 2020-02-02
  • 2021-04-15
  • 2015-08-15
  • 2011-10-29
  • 2018-06-04
相关资源
最近更新 更多