列表推导式通常和if判断用在一块儿
执行顺序:
先for循环,迭代遍历后把值进行(通常放在)后面的if判断python
[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]
express
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]
app
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']
code
讲解:
一如既往 先执行了for循环语句 而后取到的值做用到了前面的三元表达式上,这边的if在前面属于语句结构
又能够发现新大陆 一个新格式---->
三元表达式(判断元素为后边for循环遍历元素) + for循环某可迭代对象获取的数据类型对象