函数调用后的方括号
我对Python完全是个新手,最近遇到了一段让我困惑的代码。
ts, pkt2 = capPort2.wait(1, 45)[0]
我对前面的那一行感到困惑。我明白调用函数wait
时传入了两个参数,但那个[0]
是什么意思或者有什么作用呢?
3 个回答
1
哦,我觉得这个问题最近解答了我自己的疑惑,不过我想再多说一点:
这个调用:
var value = getUrlVars()["logout_url"];
最终会把变量设置为从函数调用 'getUrlVars()' 返回的 'logout_url' 名值对的值,对吧?所以你不必只用数字索引,它也可以用于从函数返回的哈希/关联数组/字典等结果。
如果这是函数 'getUrlVars':
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace (/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
}
);
return vars;
}
它会返回键值对(从输入的 URL "http://a.place.com/page.html?name=fred&place=b3&logout_url=some.thing.net/go/here/file.html"),例如:
'name'='fred',
'place'='b3',
'logout_url'='some.thing.net/go/here/file.html' <-- URL encoded, most likely
所以我上面的函数调用会返回 "some.thing.net/go/here/file.html",而像这样:
getUrlVars()["name"]
会返回:
"fred"
我想是这样的。 :)
-- C
2
这句话的意思是,wait函数的返回值可以是一个列表或者元组,而0是这个输出中某个元素的索引。举个例子:
def func(numericValue):
return list(str(numericValue))
res = func(1000)
res[0] - > 1
或者:
def convert(value, to_type):
#do something
return resuls, convertedValue
res = convert(1100, str)
res[0] - > True
11
这句话的意思是,从函数返回的列表或元组中提取第一个项目。
In [1]: "this is a long sentence".split()
Out[1]: ['this', 'is', 'a', 'long', 'sentence']
In [2]: "this is a long sentence".split()[0]
Out[2]: 'this'