代码片段精选#002:获取嵌套值

这是本公众号推出一个#代码片段#的系列合集,分享平常学习或阅读过程中发现的实用代码片段(Code Snippets),会涉及 Python、JavaScript、TypeScritp、Swift等多种语言。

欢迎大家关注公众号获取最新推送,也可以进入合集页面点击订阅,直接获取合集更新推送。

合集传送门:代码片段精选


e9aafd206fa6298ee6483ca7784550ee.jpeg

从字典或列表中读取由给定选择器列表指示的嵌套键的值。

  • 使用 functools.reduce() 遍历选择器列表。

  • 选择器中的每个键应用 operator.getitem(),获取作为下一次迭代的迭代值。

c919b5882663f6deb74387456aaf0993.png
from functools import reduce
from operator import getitem

def get(d, selectors):
  return reduce(getitem, selectors, d)

users = {
  'freddy': {
    'name': {
      'first': 'fred',
      'last': 'smith'
    },
    'postIds': [1, 2, 3]
  }
}
get(users, ['freddy', 'name', 'last']) # 'smith'
get(users, ['freddy', 'postIds', 1]) # 2

- EOF -

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

b223f3ec36899b5889d9db64d7085cb3.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值