for循环可以循环列表,元组,集合,字典

循环列表

isinstance函数可以判断数据的类型,使用方法
for i in mix_list:
    if isinstance(i, int):
        sum += i
    if isinstance(i, list):
        for temp in i:
            if type(temp) is int:
                sum += temp

 

new_list = []    #创建一个新列表

for index in [1,2,3,4,5,6]:
  new_list.append(index * index) #每次循环的结果添加到空列表
print(new_list) #此时打印list可以打印出列表中的值的平方

使用for循环得出列表中的和
sum = 0  #使用一个变量设一个空值
for index in [1,2,3,4,5,6]:
sum += index  #每次循环相加
print(sum)

for循环字典的用法
dict_a = {1:1,2:2,3:3,45:455}
for i in dict_a.keys():  #kes方法去除字典的key值
print(i)
for i in dict_a.values():  #values方法去除字典的values值,打印结果和dict_a 一致
print(dict_a)
for i in dict_a.items():  #items方法将函数以列表返回可遍历的(键, 值) 元组数组。
print(i)

课后作业

1.计算该list中所有数字的和  mix_list = ['1', 3, '5', 66, [23, '66', 'hello', '%%'], 34, '^^']

第一种方法

mix_list = ['1', 3, '5', 66, [23, '66', 'hello', '%%'], 34, '^^']
sum_a = 0
for a in mix_list:
if type(a) == int:
sum_a += a
if type(a) == list:
sum_b = 0
for b in a:
if type(b) == int:
sum_a += b
# print(sum_b)
print(sum_a)  #结果126


第二种方法
list1 = []
list2 = []
a = 0
flag = 1
list1.append(mix_list) # 构建list的list
while flag > 0:
for y in list1:
for x in y:
if type(x) == int:
a = a+x
elif type(x) == list:
list2.append(x)

if len(list2) > 0:
list1 = list2
list2 = []
else:
break

print(a)

第三种方法

mix_list = ['1', 3, '5', 66, [23, '66', 'hello', '%%'], 34, '^^']
list2 = []
for i in mix_list:
if type(i) == list:
for j in i:
list2.append(j) #取出list中的内嵌的list,添加到空列表中
sum = 0
mix_list.extend(list2) #合并到一个list中
for q in mix_list:
if type(q) == int: #取出int类型
sum += q
print(sum)

2.计算10-20里面所有奇数的和

sum = 0
for num in range(10,21):
if (num % 2) != 0:
sum += num
print(sum)



3.以下打印出的结果为什么没有删除完

list_a = [1,2,3,4,5,6,7]
for i in list_a:
list_a.remove(i)
print('list_a =', list_a)
list_a = [2, 4, 6]

因为具体过程如下:

1、当第一次删除后,后面的元素会前移,此时a=[2,3,4,5,6,7]#第一个元素可以正常删除
2、然后指针下一次会指向新列表的第二个元素(即初始状态的第三个位置),从而初始状态的第二个位置被跳过了,初始第三个位置被删除,接着后面的元素又再次前移(变成[2,4,5,6,7])

#指针对应的下标为2 ,因为发生位移,第二次遍历的时候i的值直接指向第二位,也是3
3、指针指向新列表的第三个元素,即初始状态的第5个元素5,然后5被删除了,因此只剩下[2,4,6]







posted on 2020-11-18 21:50  LiuYJ1  阅读(200)  评论(0编辑  收藏  举报