python列表及for迴圈要注意的知識點

來源:互聯網
上載者:User

標籤:python 列表


列表可以嵌套不同的資料類型,如下是在列表中嵌套字典

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]for i in a:    print(i)

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/06/BD/wKiom1m9MTfhOhXeAAARW93kFck588.png" title="_20170916210710.png" alt="wKiom1m9MTfhOhXeAAARW93kFck588.png" />

我們可以用for迴圈去顯示每個字典 

如果想找一個名字為zhouziqi的資訊,思路是這樣的,讓a列表中的每個字典一個個的賦值給i,這樣i就是字典,如果想要找到字典中的‘name‘就可以用i[‘name‘]

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]for i in a:    print(i[‘name‘])

這個在以後會經常用到哦

下面我們說一個for迴圈要注意的小點,直接看例子:

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]name = input("Please input name:")for i in a: #把a列表中的字典一個個的賦予給變數i    if name == i[‘name‘]: #判斷使用者輸入name的值是否等於在i字典中key為name的值        print("the name is exist") #如果存在就輸出正確資訊    else:        print("None") #這是不正確的資訊

從上面代碼中看不出任何的毛病,你可以執行一下:

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/06/BD/wKiom1m9NJPRKBCqAAAMSbizaQc023.png" title="_20170916210710.png" alt="wKiom1m9NJPRKBCqAAAMSbizaQc023.png" />

為什麼明明我們輸入了zhouziqi這個名字是存在的,卻又說這個name存在,又說這個名字不存在呢?

因為我們的a列表裡面有兩個字典對吧,當我們執行上面代碼的第二行的時候,也就是讓使用者輸入一個值,我們輸入zhouziqi,這時候name就等於zhouziqi,進入第三行代碼,i的第一個值就是字典{"name":‘zhouziqi‘,‘contact‘:17806762943},然後進行第四行代碼,判斷name的值是否等於{"name":‘zhouziqi‘,‘contact‘:17806762943}字典中key為name的值,結果zhouziqi是等於zhouziqi的,這時候等式成立了,第五行代碼,列印正確資訊,這就出現了the name is exist,那為什麼還有個None的錯誤資訊列印出來呢,因為a裡面是兩個字典,剛剛我們{"name":‘zhouziqi‘,‘contact‘:17806762943},現在就用第二個字典{"name":‘zhouyu‘,‘contact‘:13246910612},發現不成立就列印出錯誤資訊。這和我們想的不一樣呀,那麼我們能不能讓它判斷有這個名字了就自己break出來呢。這樣還是有問題的哦,你看看以下代碼

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]name = input("Please input name:")for i in a:    if name == i[‘name‘]:        print("the name is exist")        break    else:        print("None")

我們執行一下,這樣輸入zhouyu

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/06/BE/wKiom1m9N3aCXZE2AAAPWz0I7_4028.png" title="_20170916210710.png" alt="wKiom1m9N3aCXZE2AAAPWz0I7_4028.png" />

為什麼會出現None,因為和上面的一樣,i的第一個值是{"name":‘zhouziqi‘,‘contact‘:17806762943}判斷出name(也就是zhouyu)不等於i[‘name‘](也就是zhouziqi)所以就列印出None,然後第二個字典是{"name":‘zhouyu‘,‘contact‘:13246910612},這才匹配成功輸出the name is exist。那我們應該怎麼辦呢?

因為不管怎麼樣,都會出現None,那麼我們能不能不要這個else呢,答案是確定的,可以不要這個else,然後在外面定義一個值為false_number預設值為0,然後在for迴圈裡面,如果我們找到使用者輸入的name就更改false_number的值為1,然後用break跳出迴圈,在外面我們再去判斷false_number是否為1,如果是說明這個name就存在於數組中的字典中,否則就不存在

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]name = input("Please input name:")false_number = 0for i in a:    if name == i[‘name‘]:        false_number = 1    if false_number == 1:        breakif false_number == 1:    print("the name is exist")else:    print("None")


本文出自 “愛周瑜” 部落格,請務必保留此出處http://izhouyu.blog.51cto.com/10318932/1965950

python列表及for迴圈要注意的知識點

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.