我刚开始学习python。我收到了这个声明:
output= " name: abc"
log =output.split("=")[1]
[1]
表示什么?为什么使用它?
答案 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]
在这种情况下,这将是有用的