python遍历多级容器 变量的解包

# 1.遍历不等长多级容器
container = [1,2,3,4,("","234",{"马大帅","李世民","刘秀"})]
for i in container:
    # 判断当前元素是否是容器,如果是,进行二次遍历,如果不是,直接打印
    if isinstance(i,tuple):
        # ("嗄","234",{"马大帅","李世民","刘秀"})
        for j in i:
            # 判断当前元素是否是集合,如果是,进行三次遍历,如果不是,直接打印
            if isinstance(j,set):
                # j = {"马大帅","李世民","刘秀"}
                for k in j :
                    print(k)
            else:
                print(j)
                
    # 打印数据
    else:
        print(i)

# 2.遍历不等长多级容器
container = [("刘玉柱","历史","光绪"), ("朝气","朝志"),("韩晓",)]
for i in container:
    for j in i:
        print(j)


# 3.遍历等长的容器
container = [("马云","小马哥","马大哈") , ["王健林","王思聪","王传国"],{"王宝强","马蓉","宋小宝"}]
for a,b,c in container:
    print(a,b,c)

# 变量的解包
a,b,c = "poi"
a,b = (1,2)
a,b = 1,2
a,b,c = [10,11,12]
a,b = {"林辉","率先"}
a,b = {"lmh":"林辉","jsx":"家先"}
a,b,c = ("马云","小马哥","马小云")
print(a,b,c)

# ### range对象
"""
range([开始值,]结束值[,步长])
取头舍尾,结束值本身获取不到,获取到它之前的那一个数据
"""

# range(一个值)
for i in range(5): # 0 ~ 4
    print(i)

# range(二个值)
for i in range(3,8): # 3 4 5 6 7 
    print(i)

# range(三个值) 正向的从左到右
for i in range(1,11,3): # 1 4 7 10 
    print(i)

# range(三个值) 逆向的从右到左
for i in range(10,0,-1): # 10 9 8 7 ... 1 
    print(i)


# 总结:
"""
while 一般用于处理复杂的逻辑关系
for   一般用于迭代数据
部分情况下两个循环可以互相转换;
"""

 

posted @ 2022-01-14 10:08  urls  阅读(46)  评论(0编辑  收藏  举报