国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python_bomb----函數高級特性(生成器)

JouyPub / 1162人閱讀

迭代

可以通過 for 循環來遍歷 list 或 tuple,這種遍歷我們稱為迭代(Iteration)
只要是可迭代對象,都可以迭代,比如字典
默認情況下,字典迭代的是key值
如何讓判斷一個類型是否可迭代

from collections import Iterable    #導入collections模塊的Iterable類型判斷方法
print(isinstance({"abc":1},Iterable))


True
列表生成式

Python 內置的非常簡單卻強大的可以用來創建 list的生成式

列表生成方法

for循環

#輸出0~9之間偶數的平方
li= []
for i in range(0,10,2):
    li.append(i**2)
    
li
[0, 4, 16, 36, 64]

列表生成式

print([i**2 for i in range(0,10,2)])
[0, 4, 16, 36, 64]

列表生成式相對循環語句,代碼簡潔

#找出1~100之間所有質數
#質數(prime number)又稱素數,有無限個。
#質數定義為在大于1的自然數中,除了1和它本身以外不再有其他因數。

def isprime(num):
    for i in range(2, num):
        if num % i == 0:
            return False
    else:
        return True


val = int(input("請輸入一個數:"))
print([i for i in range(2, val) if isprime(i)])


請輸入一個數:100
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

字典生成式
#合并大小寫
#key值最終為小寫

d1={"a":10,"b":3,"A":10,"B":8}

print({k.lower():d1.get(k.upper(),0)+d1.get(k.lower(),0)for k,v in d1.items()})

{"a": 20, "b": 11, "c": 13}

生成器

通過列表生成式,我們可以直接創建一個列表,受到內存限制,列表容量肯定是有限的
創建一個包含 100 萬個元素的列表,占用很大的存儲空間

生成器是什么?

在循環的過程中不斷推算出后續的元素呢?這樣就不必創建完整的 list,從而節省大量的空間。在 Python 中,這種一邊循環一邊計算的機制,稱為生成器(Generator)

讀取生成器

next()

for循環

#Fibnonacci數列
#1,1,2,3,5,8,13,....

#yield:函數中帶有yield,那么這個函數的返回值就是一個生成器
#如果要執行函數內容,需要調用next方法或者for循環
#當執行next方法時,遇到yield程序停止
#直到下一次next方法時,從上一次yiled停止的地方繼續執行,遇到yeild停止
def fibnnonacci(num):   #num表示將來顯示幾個值
    a,b,count = 0,1,0   #count是已經顯示過的次數
    while count<=num:
        yield b
        a,b = b,a+b
        count+=1
res = fibnnonacci(100)
print(next(res))
print(next(res))
print(next(res))
print(next(res))


1
1
2
3

Process finished with exit code 0

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42250.html

相關文章

  • python_bomb----字典(dict)

    摘要:定義字典存放鍵值對,且值可以是任意的數據類型集合常用方法第一個參數可以是列表元組字符串集合,將參數中每一個值作為值并且所有值都相同生成個銀行卡號,默認密碼為特性字典不支持索引,切片,重復,連接。 定義 字典存放 key - value(鍵值對),且value值可以是任意的數據類型 m ={sheen:[100,99,100],star:[97,100,100]} print(m,typ...

    dinfer 評論0 收藏0
  • python_bomb----高階函數

    摘要:高階函數實參是一個函數名函數的返回值是一個函數傳遞的參數包含函數名。內置高階函數函數函數接收兩個參數一個是函數一個是序列將傳入的函數依次作用到序列的每個元素并把結果作為新的返回。 高階函數 實參是一個函數名 函數的返回值是一個函數 print(abs(-10)) f = abs print(f(-10)) #傳遞的參數包含函數名。 def myfun(x,y,fun): ...

    Pocher 評論0 收藏0
  • python_bomb----集合

    摘要:集合定義集合里面的元素是不可重復的如何定義一個空集合默認情況是,稱為字典定義一個空集合集合應用列表去重集合特性集合支持的特性只有成員操作符。 集合定義 集合里面的元素是不可重復的; s={1,1,2,3,4,2,2} print(s) {1, 2, 3, 4} 如何定義一個空集合? s1 = {} # 默認情況是dict, 稱為字典 print(s1,type(s1)) {} 定...

    zacklee 評論0 收藏0
  • python_bomb----有趣的微信聊天機器人

    摘要:模塊是一個文件,以結尾,包含了對象定義和語句模塊讓你能夠有邏輯地組織你的代碼段。把相關的代碼分配到一個模塊里能讓你的代碼更好用,更易懂。命令執行成功,執行結果命令執行失敗一秒后執行關機命令 Python 模塊(Module) 是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句 模塊讓你能夠有邏輯地組織你的 Python 代碼段。 把相關的代...

    bawn 評論0 收藏0

發表評論

0條評論

JouyPub

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<