我刚开始学习python。我正在按照一个例子说明他们在声明变量之前使用了*。我的问题是使用它的目的是什么。 例如,我正在关注
for i in range(n):
name, *l = input().split()
s = list(map(float, l))
a[name] = s
打印变量后,我得到一个由a做的字典。但无法理解为什么*在l变量之前使用
答案 0 :(得分:4)
这是在python 3中引入的一个新的解包功能,称为星形解包或extended iterable unpacking。
当你做
时name, *l = input().split()
split
的结果分为两部分:
name
获取列表的第一个元素l
获取列表的其余部分(浮动)所以假设你有这样的一行:
name 0.0 1.0 2.0 3.0
split
将name
设置为"name"
,l
设置为["0.0", "1.0", "2.0", "3.0"]
。 l
将list(map(float ...
转换为浮动列表name
然后a = {name:list(map(float,l)) for name, *l in (input().split() for _ in range(n))}
用作键,浮点列表用作值。
除此之外:你的循环可以用下面的字典理解来概括:
export const getRequest = (a) => (dispatch) =>{
return axios.get(a)
.then(function (response) {
dispatch({
type: FETCH_DATA,
payload: response.data
});
})
.catch(function (error) {
dispatch({type: ERROR_DATA, payload: {status : error.response.status, statusText : error.response.statusText }});
});
};