第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從dicts列表中獲取值列表

從dicts列表中獲取值列表

慕田峪9158850 2019-07-31 18:45:08
從dicts列表中獲取值列表我有一個像這樣的dicts列表:[{'value': 'apple', 'blah': 2},   {'value': 'banana', 'blah': 3} ,   {'value': 'cars', 'blah': 4}]我想要 ['apple', 'banana', 'cars']什么是最好的方法呢?
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

假設每個dict都有一個value鍵,你可以寫(假設你的列表被命名l

[d['value'] for d in l]

如果value可能丟失,您可以使用

[d['value'] for d in l if 'value' in d]


查看完整回答
反對 回復 2019-07-31
?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

當事情變得更復雜,并且你需要開始編寫帶有復雜表達式的多子句或嵌套式理解時,值得研究其他選擇。有幾種不同的(準)標準方法可以在嵌套的dict-and-list結(jié)構(gòu)上指定XPath樣式的搜索,例如JSONPath,DPath和KVC。PyPI上有很好的庫。


這是一個名為庫的示例dpath,展示了它如何簡化一些更復雜的東西:


>>> dd = {

...     'fruits': [{'value': 'apple', 'blah': 2}, {'value': 'banana', 'blah': 3}],

...     'vehicles': [{'value': 'cars', 'blah':4}]}


>>> {key: [{'value': d['value']} for d in value] for key, value in dd.items()}

{'fruits': [{'value': 'apple'}, {'value': 'banana'}],

 'vehicles': [{'value': 'cars'}]}


>>> dpath.util.search(dd, '*/*/value')

{'fruits': [{'value': 'apple'}, {'value': 'banana'}],

 'vehicles': [{'value': 'cars'}]}

或者,使用jsonpath-ng:


>>> [d['value'] for key, value in dd.items() for d in value]

['apple', 'banana', 'cars']

>>> [m.value for m in jsonpath_ng.parse('*.[*].value').find(dd)]

['apple', 'banana', 'cars']

乍一看這個看起來并不那么簡單,因為find返回匹配對象,除了匹配的值之外還包括各種事物,例如直接指向每個項目的路徑。但是對于更復雜的表達式,能夠'*.[*].value'為每個表達式指定路徑而不是理解子句*可以產(chǎn)生很大的不同。此外,JSONPath是一種與語言無關的規(guī)范,甚至還有在線測試人員可以非常方便地進行調(diào)試。


查看完整回答
反對 回復 2019-07-31
  • 3 回答
  • 0 關注
  • 548 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號