python刪除列表內容

來源:互聯網
上載者:User
今天有點囧

a=['XXXX_game.sql', 'XXXX_game_sp.sql', 'XXXX_gamelog_sp.sql', 'XXXX_gamelog.sql']for i in a:  if 'gamelog' in i:    a.remove(i)print a['XXXX_game.sql', 'XXXX_game_sp.sql', 'XXXX_gamelog.sql']

曆遍的過程中明顯MISS掉了 'XXXX_gamelog.sql' 這個項目,大家可以自己試試,為什麼會沒刪完,這到底是什麼原因呢?

我們再驗證一次

for i in a:  if 'gamelog' in i:    print i, XXXX_gamelog_sp.sql XXXX_gamelog.sql

看到結果,如果我們不對它進行remove的操作,是不會有問題的。完全可以曆遍。

這樣我們大概知道了,在對列表進行remove操作的時候,用曆遍的方法是不行的。那如何解決?

a1=a[::]      #這裡我們鏡像一個列表a1,但是千萬別用a1=a,為什麼,我們可以測試下 a1=a[::] a1==a True; a1 is a False; 如果用a1=a a1==a True; a1 is a True,下來大家可以測試下,這個是列表的一個特性。for i in a1:  if 'gamelog' in i:    a.remove(i)print a ['XXXX_game.sql', 'XXXX_game_sp.sql']

再來一個例子

[ { 'Num': '001', 'Name': '張三', 'Workingtime': 'Monday', 'Money': '100' }
{ 'Num': '002', 'Name': '李四', 'Workingtime': 'Tuesday', 'Money': '200' }]
因為有'張三',所以刪除 { 'Num': '001', 'Name': '張三', 'Workingtime': 'Monday', 'Money': '100'}整一行,怎麼操作

思路是找到要刪除的元素在列表中的索引,然後調用 pop,索引作為參數。pop 返回被刪除的元素。隊列剩下的就是刪除該索引元素之後的剩餘的。

lname = [ { 'Num': '001', 'Name': '張三', 'Workingtime': 'Monday', 'Money': '100' } { 'Num': '002', 'Name': '李四', 'Workingtime': 'Tuesday', 'Money': '200' }]for x in range(len(lname)):  #列表遍曆      if l[x]['name'] == u'張三':        lname.pop(x)      #用 pop。    break         #操作完成,break 出去

好了,今天就先到這裡

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.