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

資訊專欄INFORMATION COLUMN

Python 進(jìn)階之路 (一) List 進(jìn)階方法匯總,新年快樂(lè)!

garfileo / 588人閱讀

摘要:嘗射于家圃,有賣(mài)油翁釋擔(dān)而立,睨之,久而不去。康肅問(wèn)曰汝亦知射乎吾射不亦精乎翁曰無(wú)他,但手熟爾??得C忿然曰爾安敢輕吾射翁曰以我酌油知之。

開(kāi)啟變身模式

大家好, 從這一期開(kāi)始,我們會(huì)從小白變身為中等小白,在基礎(chǔ)起步階段有太多的東西我沒(méi)有講到,但是俗話說(shuō)的好,無(wú)他,但手熟爾,只要多多練習(xí),時(shí)間會(huì)是最好的證明,相信我們終有一天會(huì)成為高手,因此從這一系列開(kāi)始,讓我們一起更上一層樓,還是和往常一樣,我也是水平不高,如果有大神發(fā)現(xiàn)文章中的錯(cuò)誤一定要指出哈~

先皮一下,看個(gè)歐陽(yáng)修的<<賣(mài)油翁>>:

陳康肅公堯咨善射,當(dāng)世無(wú)雙,公亦以此自矜。嘗射于家圃,有賣(mài)油翁釋擔(dān)而立,睨之,久而不去。見(jiàn)其發(fā)矢十中八九,但微頷之。

康肅問(wèn)曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“無(wú)他,但手熟爾?!笨得C忿然曰:“爾安敢輕吾射!”翁曰:“以我酌油知之?!蹦巳∫缓J置于地,以錢(qián)覆其口,徐以杓酌油瀝之,自錢(qián)孔入,而錢(qián)不濕。因曰:“我亦無(wú)他,惟手熟爾。”康肅笑而遣之。

List的進(jìn)階用法

這里我將會(huì)詳細(xì)介紹一些我認(rèn)為非常不錯(cuò)的List的使用方法,至于list 自帶的一些基礎(chǔ)用法,這里不再說(shuō)明,感興趣的朋友們可以看看我的基礎(chǔ)教程: Python 基礎(chǔ)起步 (五) 一定要知道的數(shù)據(jù)類型:初識(shí)List 和 Python 基礎(chǔ)起步 (六) List的實(shí)用技巧大全, 好啦,閑話少說(shuō),讓我們開(kāi)始吧

把其他類型數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為L(zhǎng)ist類型

利用list(target)即可實(shí)現(xiàn)把其他類型的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為L(zhǎng)ist類型,十分實(shí)用,我們可以把字符串,元組等數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為L(zhǎng)ist,也可以直接創(chuàng)建,像下圖一樣:

print(list())                            # 創(chuàng)建空List

vowelString = "aeiou"                    # 把字符串轉(zhuǎn)化為L(zhǎng)ist
print(list(vowelString))

vowelTuple = ("a", "e", "i", "o", "u")  # 從元組tuple轉(zhuǎn)化為L(zhǎng)ist
print(list(vowelTuple))

vowelList = ["a", "e", "i", "o", "u"]   # 從List到List
print(list(vowelList))

vowelSet = {"a", "e", "i", "o", "u"}    #  從Set到List
print(list(vowelSet))

Out: []
     ["a", "e", "i", "o", "u"]
     ["a", "e", "i", "o", "u"]
     ["a", "e", "i", "o", "u"]
     ["a", "e", "i", "o", "u"]

可能平時(shí)用的比較多的一般是從一個(gè)dict中提取 keys 和 values :

person = {
    "name":"Peppa Pig",
    "age":15,
    "country":"bratian"}

person_keys = list(person.keys())
person_values = list(person.values())

print(list(person))  # 如果直接轉(zhuǎn)化一個(gè)字典只會(huì)把keys提取出來(lái)
print(list(person.keys()))
print(list(person.values()))

Out:["name", "age", "country"]    
    ["name", "age", "country"]             # 把字典中的Keys提出
    ["Peppa Pig", 15, "bratian"]           # 把字典中的Values提出
 

這里大家稍微注意下,如果直接用list(person)會(huì)默認(rèn)等同于person.keys()

List排序方法匯總

總體來(lái)說(shuō),有兩種方法最為便捷,List.sort 或者 sorted(List),具體來(lái)看如何實(shí)現(xiàn),先看升序:

vowels = ["e", "a", "u", "o", "i"]   
vowels.sort()        
print("Sorted list Acending:", vowels)  # 使用sort
Out: Sorted list Acending: ["a", "e", "i", "o", "u"]
vowels = ["e", "a", "u", "o", "i"]   
print("Sorted list Acending:", sorted(vowels))  # 使用sorted
Out:Sorted list Acending: ["a", "e", "i", "o", "u"]

再來(lái)看降序:

vowels = ["e", "a", "u", "o", "i"]
vowels.sort(reverse=True)     # 使用sort
print("Sorted list (in Descending):", vowels)
Out: Sorted list (in Descending): ["u", "o", "i", "e", "a"]
vowels = ["e", "a", "u", "o", "i"]
print("Sorted list (in Descending):", sorted(vowels,reverse=True))  # 使用sorted方法
Out:Sorted list (in Descending): ["u", "o", "i", "e", "a"]

其實(shí)這里里面還有一個(gè)關(guān)鍵的參數(shù)是key,我們可以自定義一些規(guī)則排序,下面看個(gè)例子,用的是默認(rèn)的len函數(shù)
,讓我們根據(jù)List中每個(gè)元素的長(zhǎng)度來(lái)排序,首先是升序:

vowels = ["I", "live", "at", "Paris", "I","love","Python"]
# 使用sort
vowels.sort(key=len)  
print("Sorted by lenth Ascending:", vowels)
Out:Sorted by lenth: ["I", "I", "at", "live", "love", "Paris", "Python"]
vowels = ["I", "live", "at", "Paris", "I","love","Python"]
# 使用 sorted
print("Sorted by lenth Ascending:", sorted(vowels,key=len))
Out:Sorted by lenth Ascending: ["I", "I", "at", "live", "love", "Paris", "Python"]

降序也差不多啦:

vowels = ["I", "live", "at", "Paris", "I","love","Python"]
vowels.sort(key=len,reverse=True)
print("Sorted by lenth Descending:", vowels)
Out:Sorted by lenth Descending: ["Python", "Paris", "live", "love", "at", "I", "I"]

vowels = ["I", "live", "at", "Paris", "I","love","Python"]
print("Sorted by lenth Descending:", sorted(vowels,reverse=True))
Out:Sorted by lenth Descending: ["Python", "Paris", "live", "love", "at", "I", "I"]

有關(guān)這個(gè)key我們可以自己定義,請(qǐng)看下面的大栗子:

def takeSecond(elem):
    return elem[1]

random = [(2, 2), (3, 4), (4, 1), (1, 3)]
random.sort(key=takeSecond) # sort list with key
print("Sorted list:", random)

Out: [(4, 1), (2, 2), (1, 3), (3, 4)]

這里因?yàn)榱斜碇械脑囟际窃M,所以我們規(guī)定按照元組的第二個(gè)數(shù)排序,所以結(jié)果如上,默認(rèn)依然是reverse=False ,也就是升序,至于其他有意思的方法大家可以自己開(kāi)發(fā)

逆序輸出List

如果我們想要逆序輸出一個(gè)List,簡(jiǎn)單來(lái)說(shuō)有兩種方法比較好用,切片和reverse,來(lái)看例子:

    vowels = ["I", "live", "at", "Paris", "I","love","Python"]
    print(list(reversed(vowels)))
    print(list[::-1])
Out:["Python", "love", "I", "Paris", "at", "live", "I"]   
    ["Python", "love", "I", "Paris", "at", "live", "I"]   
利用Range生成List

Python里面為我們提供了一個(gè)超好用的方法range(),具體的用法很多,不在這里一一講解啦,但是大家可以看一下它如何和List結(jié)合在一起的:

five_numbers=list(range(5))  #創(chuàng)建0~4的List
print(five_numbers)

odd_numbers=list(range(1,50,2))   #創(chuàng)建0~50所有的奇數(shù)的List
print(odd_numbers)

even_numbers=list(range(0,50,2))  #創(chuàng)建0~50所有的偶數(shù)的List
print(even_numbers)

其實(shí)很簡(jiǎn)單,用的最多的就是range(start, stop, hop)這個(gè)結(jié)構(gòu),其他的大家可以自行查詢哈

List列表推導(dǎo)式

其實(shí)這個(gè)東西無(wú)非就是為了減少代碼書(shū)寫(xiě)量,比較Pythonic的東西,基礎(chǔ)模板如下:

variable = [out_exp for out_exp in input_list if out_exp == 2]

大家直接看比較麻煩,還是直接上代碼吧:

S = [x**2 for x in range(8)]      # 0~7每個(gè)數(shù)的平方存為L(zhǎng)ist
V = [2**i for i in range(8)]      # 2的 0~7次方
M = [x for x in S if x % 2 == 0]  #找出在S里面的偶數(shù)

print(S)
print(V)
print(M)


Out:   Square of 0 ~7:  [0, 1, 4, 9, 16, 25, 36, 49]
       The x power of 2,(0

通過(guò)這個(gè)小栗子大家估計(jì)已經(jīng)明白用法啦,推導(dǎo)式還可以這么用:

verbs=["work","eat","sleep","sit"]
verbs_with_ing=[v+"ing" for v in verbs]   # 使一組動(dòng)詞成為現(xiàn)在分詞
print(verbs_with_ing)

Out:["working", "eating", "sleeping", "siting"]

或者加上查詢條件if :

all_numbers=list(range(-7,9))
numbers_positive = [n for n in all_numbers if n>0 ]
numbers_negative = [n for n in all_numbers if n<0]
devided_by_two = [n for n in all_numbers if n%2==0]

print("The positive numbers between -7 to 9 are :",numbers_positive)
print("The negative numbers between -7 to 9 are :",numbers_negative )
print("The numbers deveided by 2 without reminder are :",devided_by_two)```

Out:The positive numbers between -7 to 9 are : [1, 2, 3, 4, 5, 6, 7, 8]
     The negative numbers between -7 to 9 are : [-7, -6, -5, -4, -3, -2, -1]
     The numbers deveided by 2 without reminder are : [-6, -4, -2, 0, 2, 4, 6, 8]
總結(jié)

其實(shí)客觀來(lái)講,list在實(shí)際項(xiàng)目中所用的地方有限,特別是處理數(shù)據(jù)量較大的情況下,因?yàn)樗俣葮O慢,但是在一些邊邊角角的地方我個(gè)人用的還挺多,尤其是不求速度的地方,總的來(lái)講List是我個(gè)人比較喜歡的Python
數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單好用?。。。?!

好啦,我要去吃大餐啦,祝大家新年快樂(lè)呀!??!

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

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

相關(guān)文章

  • Python 進(jìn)階之路 (二) Dict 進(jìn)階寶典,初二快樂(lè)!

    摘要:新年快樂(lè)大家好,今天是大年初二,身在國(guó)外沒(méi)有過(guò)年的氛圍,只能踏實(shí)寫(xiě)寫(xiě)文章,對(duì)社區(qū)做點(diǎn)貢獻(xiàn),在此祝大家新年快樂(lè)上一期為大家梳理了一些的進(jìn)階用法,今天我們來(lái)看字典的相關(guān)技巧,我個(gè)人在編程中對(duì)字典的使用非常頻繁,其實(shí)對(duì)于不是非常大的數(shù)據(jù)存儲(chǔ)需求, 新年快樂(lè) 大家好,今天是大年初二,身在國(guó)外沒(méi)有過(guò)年的氛圍,只能踏實(shí)寫(xiě)寫(xiě)文章,對(duì)社區(qū)做點(diǎn)貢獻(xiàn),在此祝大家新年快樂(lè)!上一期為大家梳理了一些List的進(jìn)...

    ChristmasBoy 評(píng)論0 收藏0
  • Python 進(jìn)階之路 (十) 再立Flag, 社區(qū)最全的itertools深度解析(中)

    前情回顧 大家好,我又回來(lái)了。今天我會(huì)繼續(xù)和大家分享itertools這個(gè)神奇的自帶庫(kù),首先,讓我們回顧一下上一期結(jié)尾的時(shí)候我們講到的3個(gè)方法: combinations() combinations_with_replacement() permutations() 讓我們對(duì)這3個(gè)在排列組合中經(jīng)常會(huì)使用到的函數(shù)做個(gè)總結(jié) combinations() 基礎(chǔ)概念 模板:combinations...

    LMou 評(píng)論0 收藏0
  • Python 進(jìn)階之路 (三) Tuple元組使用指南

    摘要:返回元組中元素最大值。將列表轉(zhuǎn)換為元組。如果相對(duì)元組排序,通常先得將它轉(zhuǎn)換為列表并使其成為一個(gè)可變對(duì)象,才能獲得使用排序方法,或使用內(nèi)置方法。 比List更安全的數(shù)據(jù)類型 大家好,今天為大家介紹一種更為安全的Python內(nèi)置數(shù)據(jù)類型:tuple(元組),以及它的基礎(chǔ)用法 元組是什么 元組(tuple)是另一種有序的數(shù)據(jù)類型,與list比較類似。主要不同的一點(diǎn)是tuple被創(chuàng)建后就不能對(duì)...

    1fe1se 評(píng)論0 收藏0
  • 《正規(guī)軍的Python進(jìn)階之路Python技能樹(shù)測(cè)評(píng)》

    摘要:每個(gè)模塊都有對(duì)應(yīng)的分支內(nèi)容,并且分支內(nèi)容都分為參考資料練習(xí)題交流討論三個(gè)內(nèi)容,我最喜歡的是練習(xí)題,之前都是非正規(guī)軍的學(xué)習(xí),沒(méi)有系統(tǒng)訓(xùn)練過(guò),現(xiàn)在有技能樹(shù)測(cè)評(píng)終于可以把之前散亂的知識(shí)點(diǎn)總結(jié)在一起了。祝大家都能在技能樹(shù)測(cè)評(píng)判斷自己在哪個(gè)級(jí)別的。 通過(guò)《Python技能樹(shù)測(cè)評(píng)》判斷自己在哪個(gè)級(jí)別: ...

    jayzou 評(píng)論0 收藏0
  • Python 進(jìn)階之路 (四) 先立Flag, 社區(qū)最全的Set用法集錦

    摘要:與上面的操作類似,可以使用多種運(yùn)算符和方法來(lái)更改集合的內(nèi)容。通過(guò)修改集合元素方法運(yùn)算符用法通過(guò)修改集合和作用是向集合中添加中所有不存在的元素。 Set是什么 大家好,恰逢初五迎財(cái)神,先預(yù)祝大家新年財(cái)源滾滾??!在上一期詳解tuple元組的用法后,今天我們來(lái)看Python里面最后一種常見(jiàn)的數(shù)據(jù)類型:集合(Set) 與dict類似,set也是一組key的集合,但不存儲(chǔ)value。由于key不...

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

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

0條評(píng)論

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