簡體   English   中英

如何在 Python 字典中獲取內鍵

[英]How to get inner key in Python dictionary

由於 get 之類的功能,我是否能夠按鍵獲取內部值? 簡單的字典:

dict1 = {
    'key1': 'asdfasdf'
}

如果我想通過key1獲取值我只寫dict1.get('key1')但是如果我有這樣的字典怎么辦:

dict2 = {
    'some_key': {
        'key1': 'asdfasdf'
    }
}

我怎樣才能像 dict2.get('key1') 這樣通過key1獲取值?

如您所知,我只需要這兩種類型的詞典,所以我不需要dict2['some_key']['key1']

那是一個嵌套的字典

如果你想避免使用頂級字典的鍵來訪問內部項目,你可以使用迭代理解

例如

[x.get('key1') for x, x in dict2.items()]

或僅使用值

[x.get('key1') for x in x.values()]

這將返回 asdfasdf 列表

如果您正在查找與嵌套字典中第一次出現的“key1”相關聯的值,則可以通過一點遞歸來實現。

def first(d, k):
  if k in d: return d[k]
  for v in d.values():
    if isinstance(v, dict): 
      v2 = first(v, k)
      if v2: return v2

考慮:

>>> first({'a':{'b':42, 'c':27, 'd':{'e': 3.14, 'key1':'hello world'}}}, 'key1')
'hello world'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM