日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python的列表生成式,生成器和generator對象你了解嗎_python

作者:我叫RT ? 更新時間: 2022-05-17 編程語言

列表生成式

可以使用列表生成式生成 列表元素。

例如:

在這里插入圖片描述

列表還支持 if … else 與 for 循環組合的單行表達式進行初始化。

>>> example = [i*i if i%2 == 0 else 2*i for i in range(1,11)] # 1~10中,奇數*2,偶數平方
>>> print ([i for i in range(1,11)]) # 對照組,1~10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> example
[2, 4, 6, 16, 10, 36, 14, 64, 18, 100]

在這里插入圖片描述

當然,if … else 本就支持單行寫法。

>>> a = 100
>>> if a < 100:
...     print("lt 100")
... elif a == 100:
...     print("eq 100")
... else:
...     print("gt 100")
...
eq 100
>>>
>>> # 如果將上述if...else寫為單行式
... print("lt 100") if a < 100 else print("eq 100") if a == 100 else print("gt 100")
eq 100

在這里插入圖片描述

列表表達式初始化 dict 或 set

同時,我們也可以使用單行for初始化 set

在這里插入圖片描述

還可以用于提取list的下標與元素,需要注意的是,如果使用??的key:value的形式,最終結果是dict。

在這里插入圖片描述

generator對象

探索,是否可以類比上述,生成tuple。當我這么做的時候,結果獲得一個generator類型。

在這里插入圖片描述

簡單來說返回的generator是一個可迭代對象,因此我們嘗試使用 for 遍歷它的時候,是可以遍歷得到其所有數據的。

在這里插入圖片描述

而這里的 可迭代對象(Iterable)主要指可以直接作用于for循環的對象(for循環本質上就是通過不斷調用next()函數進行迭代)。

包括內置的(listtupledictsetstr等)和生成器(generator)。

生成generator對象

主要有兩種方法:

  • 第一種使用?()?包裹列表生成式
  • 第二種,使用 yield 標記

示例:演示yield

在這里插入圖片描述

這里可以通過 next() 獲取內部元素

在這里插入圖片描述

總結

原文鏈接:https://blog.csdn.net/weixin_43919932/article/details/123469942

欄目分類
最近更新