成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

python_bomb----函數(shù)高級(jí)特性(生成器)

JouyPub / 1183人閱讀

迭代

可以通過(guò) for 循環(huán)來(lái)遍歷 list 或 tuple,這種遍歷我們稱(chēng)為迭代(Iteration)
只要是可迭代對(duì)象,都可以迭代,比如字典
默認(rèn)情況下,字典迭代的是key值
如何讓判斷一個(gè)類(lèi)型是否可迭代

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


True
列表生成式

Python 內(nèi)置的非常簡(jiǎn)單卻強(qiáng)大的可以用來(lái)創(chuàng)建 list的生成式

列表生成方法

for循環(huán)

#輸出0~9之間偶數(shù)的平方
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]

列表生成式相對(duì)循環(huán)語(yǔ)句,代碼簡(jiǎn)潔

#找出1~100之間所有質(zhì)數(shù)
#質(zhì)數(shù)(prime number)又稱(chēng)素?cái)?shù),有無(wú)限個(gè)。
#質(zhì)數(shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。

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


val = int(input("請(qǐng)輸入一個(gè)數(shù):"))
print([i for i in range(2, val) if isprime(i)])


請(qǐng)輸入一個(gè)數(shù):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]

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

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}

生成器

通過(guò)列表生成式,我們可以直接創(chuàng)建一個(gè)列表,受到內(nèi)存限制,列表容量肯定是有限的
創(chuàng)建一個(gè)包含 100 萬(wàn)個(gè)元素的列表,占用很大的存儲(chǔ)空間

生成器是什么?

在循環(huán)的過(guò)程中不斷推算出后續(xù)的元素呢?這樣就不必創(chuàng)建完整的 list,從而節(jié)省大量的空間。在 Python 中,這種一邊循環(huán)一邊計(jì)算的機(jī)制,稱(chēng)為生成器(Generator)

讀取生成器

next()

for循環(huán)

#Fibnonacci數(shù)列
#1,1,2,3,5,8,13,....

#yield:函數(shù)中帶有yield,那么這個(gè)函數(shù)的返回值就是一個(gè)生成器
#如果要執(zhí)行函數(shù)內(nèi)容,需要調(diào)用next方法或者for循環(huán)
#當(dāng)執(zhí)行next方法時(shí),遇到y(tǒng)ield程序停止
#直到下一次next方法時(shí),從上一次yiled停止的地方繼續(xù)執(zhí)行,遇到y(tǒng)eild停止
def fibnnonacci(num):   #num表示將來(lái)顯示幾個(gè)值
    a,b,count = 0,1,0   #count是已經(jīng)顯示過(guò)的次數(shù)
    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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42250.html

相關(guān)文章

  • python_bomb----字典(dict)

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

    dinfer 評(píng)論0 收藏0
  • python_bomb----高階函數(shù)

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

    Pocher 評(píng)論0 收藏0
  • python_bomb----集合

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

    zacklee 評(píng)論0 收藏0
  • python_bomb----有趣的微信聊天機(jī)器人

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

    bawn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<