【问题标题】:Split a string in Python and extract few fields from list在 Python 中拆分一个字符串并从列表中提取几个字段
【发布时间】:2014-03-27 19:30:37
【问题描述】:

我最近开始使用 Python,我正在尝试在 Python 中拆分一个字符串,然后只从该列表中提取字段。

下面是我的节点字符串,它总是由/分隔的四个单词组成。

node = "/tt/pf/test/v1"

我试图在/ 上拆分上面的字符串,然后将其中的testv1 值存储在某个变量中-

以下是我尝试过的-

node = "/tt/pf/test/v1"
a,b,c,d = node.split("/")
print c
print d

以下是我得到的错误 -

ValueError: too many values to unpack

【问题讨论】:

  • Python 的美妙之处在于:如果您不知道它是否有效或想知道它是如何工作的,只需在控制台中输入 "/tt/pf/test/v1".split("/") 并查看结果;)

标签: python split


【解决方案1】:

您没有考虑第一个 / 字符生成的空字符串:

node = "/tt/pf/test/v1"
node.split('/')
['', 'tt', 'pf', 'test', 'v1']

快速修复可以是这样的:

_,a,b,c,d = node.split("/")

或切片split() 结果:

a,b,c,d = node.split("/")[1:]

【讨论】:

    【解决方案2】:

    这将它分为 5 个值,而不是 4 个,因为它在开头的 / 之前包含空字符串。

    node.split("/")
    # ['', 'tt', 'pf', 'test', 'v1']
    

    试试:

    empty,a,b,c,d = node.split("/")
    

    【讨论】:

      【解决方案3】:

      node.split("/")

      ['', 'tt', 'pf', 'test', 'v1']

      第一个算作空字。 试试:skip,a,b,c,d = node.split("/")

      【讨论】:

      • 你的答案是正确的,尝试格式化它以使其更有吸引力和易于理解:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2011-03-10
      • 2020-12-23
      • 2020-01-13
      • 2021-03-07
      相关资源
      最近更新 更多