Re: [問題] 在字典格式中如何切出指定的值 part2

看板Python作者 (談無慾)時間7年前 (2016/11/19 23:21), 7年前編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《busystudent (busystudent)》之銘言: : 各位好 想再次詢問關於字典切字的問題,想要詢問「如何有效率的在一份字典中切出指定的所有值」,例如下方的格式中,想要指定share_link,切出裡面的值 : j={u'items': [{u'annotations': [],u'share_link': u'a'}, : {u'annotations': [],u'share_link': u'b'}, : {u'annotations': [],u'share_link': u'c'}, : ]} : 我最一開始的嘗試方法為用呼叫的方式,例如print "Value: %s" % j.get('items')[0]['share_link'] : 確實是可以叫出裡面的所有值,但是效率非常得差,假若’share_link’出現20次,我就要把括號 [0] 裡面的值從0寫到19,共重複20次,想請問有什麼好的解決方法,提升效率。 : 例如,如下面的虛擬碼,改成指定share_link,只要是share_link就把裡面的值抓出來 : 虛擬碼: : b = j.findall(‘share_link’) : print every share_link value 根據前面一個問題 麻煩看這篇 http://pydoing.blogspot.tw/2011/03/python-dictget.html 取到的是你的value 只是剛好你的value也是dict格式 j={u'items': [{u'annotations': []}, {u'share_link': u'http://www.google.com'}, {u'user_id': 8892484}, {u'share_link': u'https://www.yahoo.com.tw'}]} itemValue= j['items'] for i in itemValue: if ('share_link' in i): print(i.values()) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.244.175 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1479568875.A.910.html ※ 編輯: MOONY135 (114.25.244.175), 11/19/2016 23:29:22

11/20 00:13, , 1F
[i.get('share_link') for i in j.get('items') if 'shar
11/20 00:13, 1F

11/20 00:13, , 2F
e_link' in i ]
11/20 00:13, 2F
文章代碼(AID): #1OC6thaG (Python)
文章代碼(AID): #1OC6thaG (Python)