2024-09-21 00:54:05 发布
网友
我有一个功能:
def test_func(a, b): print a print b
我知道当函数调用如下所示时,使用字典是不对的:
a = {1:2, 3:4} test_func(*a) # function expects a sequence as an argument
它应该是一个卷发或列表。但控制台并没有显示任何错误,并打印此字典的键:1和3
看起来是这样的:当函数调用需要一个序列,但需要一个字典时,它会将字典的键作为参数序列来提取。可以吗
a是一个序列。更具体地说,当dict被迭代时,迭代产生字典的键(以不可预测的顺序)
a
dict
考虑
for i in {1:2, 3:4}: print i
结果将打印1和3,因为dict的迭代将产生密钥
另外,使用字典传递参数还有一种有趣的方法:
a = {'a':2, 'b':4} test_func(**a)
双星号将dict的值传递给函数的同名参数。在这种情况下,函数按顺序打印2和4
a
是一个序列。更具体地说,当dict
被迭代时,迭代产生字典的键(以不可预测的顺序)考虑
结果将打印1和3,因为
dict
的迭代将产生密钥另外,使用字典传递参数还有一种有趣的方法:
双星号将
dict
的值传递给函数的同名参数。在这种情况下,函数按顺序打印2和4相关问题 更多 >
编程相关推荐