python列表生成式和if語句、if...else語句、map結合使用
文章目錄:
python列表生成式,就是通過一行代碼語句生成一個列表,非常的方便快捷
1 python列表生成式
python列表生成式
的語句機構如下:
[expression for x in iterable_object]
expression
:是一個表達式,裏面對循環變量x
的一些操作x
:是循環變量iterable_object
:是一個可迭代的對象,這樣纔可以做循環
例子:對迭代對象[0, 1, 2, 3, 4]中的每一個元素做平方
if __name__ == '__main__':
print([x**2 for x in range(5)])
# 輸出結果
[0, 1, 4, 9, 16]
2 python列表生成式和if語句結合使用
python列表生成式
和if語句
結合的機構如下:
[expression for x in iterable_object if condition]
expression
:是一個表達式,只有滿足if條件,纔會對循環變量x
進行表達式expression中的操作x
:是循環變量iterable_object
:是一個可迭代的對象,這樣纔可以做循環condition
:是if語句的判斷條件,只有滿足condition
的循環變量纔會執行expression
例子:對迭代對象[0, 1, 2, 3, 4]中大於2的元素做平方
if __name__ == '__main__':
print([x**2 for x in range(5) if x > 2])
# 輸出結果
[9, 16]
3 python列表生成式和if…else語句結合使用
python列表生成式
和if...else語句
結合的機構如下:
[expression1 if condition else expression2 for x in iterable_object ]
expression1
:一個表達式,只有滿足if條件,纔會對循環變量x
進行表達式expression1中的操作expression2
:一個表達式,只有不滿足if條件,纔會對循環變量x
進行表達式expression2中的操作x
:是循環變量iterable_object
:是一個可迭代的對象,這樣纔可以做循環condition
:是if語句的判斷條件,只有滿足condition
的循環變量纔會執行expression1
,否則執行expression2
例子:對迭代對象[0, 1, 2, 3, 4]中大於2的元素做平方,小於2的做立方
if __name__ == '__main__':
print([x**2 if x>2 else x**3 for x in range(5)])
# 輸出結果
[0, 1, 8, 9, 16]
4 python生成表達式和zip函數結合使用
python生成表達式
和zip函數
結合的結構如下:
[expression for x, y in zip(list1, list2)]
例如:我們有兩個列表,把名字和性別配對,然後生成一個列表
if __name__ == '__main__':
list1 = ["Tom", "Jack", "Will", "July"]
list2 = ["man", "man", "man", "woman"]
print([(name, sex) for name, sex in zip(list1, list2)])
# 或 對錶達式進行一些更復雜的操作(甚至可以調用一些函數)
print(["名字:{}, 性別{}:".format(name, sex) for name, sex in zip(list1, list2)])
# 輸出結果
[('Tom', 'man'), ('Jack', 'man'), ('Will', 'man'), ('July', 'woman')]
['名字:Tom, 性別man:', '名字:Jack, 性別man:', '名字:Will, 性別man:', '名字:July, 性別woman:']