函数进阶-05列表推导式

一丶列表推导式

列表推导式一般和if判断用在一起
执行顺序:
先for循环,迭代遍历后把值进行(一般放在)后面的if判断

[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
#类似于
res=[]
for item1 in iterable1:
    if condition1:
        for item2 in iterable2:
            if condition2
                ...
                for itemN in iterableN:
                    if conditionN:
                        res.append(expression)
print(F"[i for i in range(10)]: {[i for i in range(10)]}")

[i for i in range(10)]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(F"[i**2 for i in range(10)]: {[i**2 for i in range(10)]}")

[i**2 for i in range(10)]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

  • 相对繁杂的列表生成式列子
name_list = ['nash', 'langyigang', 'fujiachen', 'jinyi']

print(
    f"[name if name=='nash' else name+'sb' for name in name_list]: {[name if name=='nash' else name+'sb' for name in name_list]}")

[name if name=='nash' else name+'sb' for name in name_list]: ['nash', 'langyigangsb', 'fujiachensb', 'jinyisb']

讲解:
一如既往 先执行了for循环语句 然后取到的值作用到了前面的三元表达式上,这边的if在前面属于语句结构
又可以发现新大陆 一个新格式---->
三元表达式(判断元素为后边for循环遍历元素) + for循环某可迭代对象获取的数据类型

posted @ 2019-09-20 01:01  suren_apan  阅读(151)  评论(0编辑  收藏  举报