【问题标题】:Can't figure out split() function无法弄清楚 split() 函数
【发布时间】:2017-09-11 23:22:57
【问题描述】:

希望你做得很好!

我被 split() 函数卡住了。我在搜索中查找过,该 split() 返回一个列表。

例子:

text = "158.0-165.4"
splittext = text.split("-")

获取值 158.0 和 165.4 是否正确? 由于 splittext 现在是一个列表,例如,我如何获得第二个值?

var1 , var2 = splittext.split("-")

我得到的只是“-”

我知道这些都是简单的事情,我应该检查文档,但我不明白我做错了什么:c

请帮忙,不胜感激!

【问题讨论】:

  • splittext 是一个包含 2 个值的数组,var1, var2 = splittext 将解包。 var2 现在将具有第二个值。或者,您可以只索引splittext,例如var2 = splittext[1]
  • 你确定吗?我得到了不同的东西。
  • 您无法打印splittext.split("-") 以查看它是什么

标签: python list split


【解决方案1】:

Python 专为实验而设计。在 shell 中运行你的例子,我得到了

>>> text = "158.0-165.4"
>>> splittext = text.split("-")
>>> splittext
['158.0', '165.4']
>>> var1 , var2 = splittext.split("-")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'split'
>>> 

哎呀!这和你说的不一样。换个方式试试

>>> text = "158.0-165.4"
>>> var1, var2 = text.split("-")
>>> var1
'158.0'
>>> var2
'165.4'

看起来不错。

【讨论】:

    【解决方案2】:

    你走得太远了。

    text = "158.0-165.4"
    splittext = text.split("-")
    

    这使得 splittext 成为一个数组。 splittext[0] = 158.0,splittext[1] 是 165.4。

    你想做的是:

    text = "158.0-165.4"
    var1, var2 = text.split("-")
    

    【讨论】:

      【解决方案3】:
      var1, var2 = text.split("-")
      

      会做你正在寻找的。由于 split 方法返回一个数组,因此您不能在其上使用 str.split 方法(即您不能使用 splittext.split("-")

      当然,您也可以使用索引访问值:

      splittext = text.split("-")
      var1 = splittext[0]
      var2 = splittext[1]
      

      【讨论】:

      • 感谢您的快速回复!像魅力一样工作,让我觉得自己很笨,哈哈。 =D
      猜你喜欢
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      相关资源
      最近更新 更多