for遍历列表——将遍历的结果赋给多个变量(元素是元组的列表的遍历)

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就出现字符串分裂的情况!

真的很坑!

总结:如果想要遍历列表元素并将元素分辨赋给多个值(两个或两个以上),那么就需要将列表的元素放在元组里将元组放在列表里(格式:[(),(),...])进行遍历赋值!

    过程是:第一步》取出一个元素(元组,元组包含元素)。第二步》从这个元素中取出相应个数的值分别给变量赋值。第三步》获得结果!第四步》进行下一组数据!

猜你喜欢

转载自blog.csdn.net/qq_33472765/article/details/80891141
今日推荐