函数进阶-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循环某可迭代对象获取的数据类型