如果函数是这样写的
def validate(input):
for a, b in input:
......
input
的句法形式是什么?我尝试过tuple
,但函数说“解压缩的值太多了”。
答案 0 :(得分:6)
在这种情况下:
input
是iterable type(列表,元组等)我认为解释这个的最好方法是演示:
>>> def validate(input):
... for a,b in input:
... print a,b
...
>>> data = [(0,1), (2,3), (4,5)]
>>> validate(data)
0 1
2 3
4 5
>>>
在上面的代码中,注意data
是一个可迭代类型(列表),并且它的每个项都是可迭代类型(在本例中为元组),它们恰好包含2个项目。
答案 1 :(得分:3)
for a,b in input
期望input
为iterable,其中每个元素都是一个子迭代,只有两个项目,例如((1,2), ("foo", "bar"), ([], None))
但不是(1, 2)
或((0,1), (2,3,4))
。
答案 2 :(得分:0)
里面有子列表/子元组的列表/元组,每个子元素包含两个元素。
def validate(input):
for a,b in input:
print a+b
sample1 = ((10,20),[30,40],('a','b'))
sample2 = [(10,20),[30,40],('a','b')]
validate(sample1),validate(sample2)