d = {"name": "Jim", "gender": "male", "age": 20}
print(*d)
为什么这段代码的运行结果是:
name gender age
[Finished in 0.1s]
但,我单独运行*d,就会报错:SyntaxError: can't use starred expression here
*d
请问,是什么原因?
d = {"name": "Jim", "gender": "male", "age": 20}
print(*d)
为什么这段代码的运行结果是:
name gender age
[Finished in 0.1s]
但,我单独运行*d,就会报错:SyntaxError: can't use starred expression here
*d
请问,是什么原因?
1 回答9.6k 阅读✓ 已解决
2 回答5.2k 阅读✓ 已解决
2 回答3.6k 阅读✓ 已解决
3 回答4.5k 阅读
2 回答1.6k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
4 回答1.1k 阅读✓ 已解决
*
和**
只在“传参”时才有用。*
处理“顺序参数”,比如f(1,2,3)
,可以是f(*[1,2,3])
。**
处理“关键词参数”,比如f(a=1, b=2, c=3)
, 可以是f(**{'a':1, 'b': 2, 'c': 3})
至于你说的问题,本质上,在 Python3 中,
*
后面需要的是一个 sequence ,更准备地说,是一个 iterable 的对象:而你代码中的
d
,是一个dict
,自然是一个可以 iterable 的对象。