[1]在此代码中的含义是什么?

时间:2014-04-22 09:11:57

标签: python

我刚开始学习python。我收到了这个声明:

output= " name: abc" 
log =output.split("=")[1]

[1]表示什么?为什么使用它?

3 个答案:

答案 0 :(得分:6)

[1]正在索引output.split("=")返回的列表;如果该方法返回2个或更多元素的列表,则[1]将索引第二个元素。

在您的具体情况下,它会引发IndexError,因为=中没有output。因此,output.split("=")方法只返回一个只包含一个字符串的列表。

你可以在Python解释器提示中尝试这些:

>>> output= " name: abc" 
>>> output.split('=')
[' name: abc']
>>> output.split('=')[0]
' name: abc'
>>> output.split('=')[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

如果你分开:而不是你得到了更有用的结果:

>>> output.split(':')[1]
' abc'

答案 1 :(得分:3)

这就是声明的含义:

output= " name: abc"

log =output.split("=")[1]

取字符串output并将其拆分为'=',然后在结果列表中获取第二个元素(索引1)

但是,您可能会发现output确实不包含任何=,您可能需要:

output= "name=abc"

以下是细分:

a = output.split('=')
>>> a
['name', 'abc']

>>> a[1]
abc

答案 2 :(得分:0)

当您确定字符串具有(=)等于符号或您要分割的任何字符时,这非常有用。这样它就会拆分字符串并返回列表。

然后从列表中您可以选择字符串的哪个部分对您有用

在你的情况下,它将返回IndexError,因为它没有返回列表。

output= " name= abc"
log =output.split("=")[1]

在这种情况下,这将是有用的