列表推導式通常和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循環某可迭代對象獲取的數據類型對象