list = ['11','21','31','41']
for a in list:
print(a)
以上是正常的一般的遍历情况!!!
如果想要遍历列表中元素分别赋给几个变量怎么办呢??
第一种错误:
list = ['11','21','31','41']
for a,b,c,d in list:
print(a,b,c)
结果:
可以看出原因是:本来是想要四个元素值分别赋给a,b,c,d的但是遍历列表的时候首先获得‘11’,要将‘11’分别赋给a,b,c,d,r。然而‘11’只有两个‘1’组成,所以就会出现值不够(希望是4个,得到2个)!
第二种错误:
list = ['11','21','31','41']
for a, b in list:
print(a,b)
结果:思考—怎么数字分开了!!!!
同上一种错误对比,可以看出来如果是遍历列表元素赋给a,b俩值就不会报错但是会出现数字分开的情况,当然也是错的。这就是分别取出11,21,31,41四个元素,分别拆分,拆分字符串后赋给a,b!就出现了这样的情况。
第三种错误:
list = ['11','21','31','41']
for a,b in list[0]:
print(a,b)
结果:
这种情况可以看出来,假如取出一个元素然后遍历这个元素,将值赋给a,b,就出现了又是值不够的情况!这样就是后面list[0],已经不是列表了而是一个元素,这样的话就需要俩元素来赋给a,b。因此就出现了这样的情况!
正确的遍历:
list1 = [('11','21'),'31','41']
for a, b in list1:
print(a, b)
结果:
从正确的结果不难发现,假如列表的元素是元组的话第一步取出元素(第一个元组),第二步遍历赋值(从元组取值)第三步得到结果(将元组的元素分别赋给a,b)从上例中可以看出11,21是正常的,后面不是元组包裹的元素31,41就出现字符串分裂的情况!
真的很坑!
总结:如果想要遍历列表元素并将元素分辨赋给多个值(两个或两个以上),那么就需要将列表的元素放在元组里将元组放在列表里(格式:[(),(),...])进行遍历赋值!
过程是:第一步》取出一个元素(元组,元组包含元素)。第二步》从这个元素中取出相应个数的值分别给变量赋值。第三步》获得结果!第四步》进行下一组数据!