加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

展平python中每个键的值

发布时间:2020-12-20 12:34:08 所属栏目:Python 来源:网络整理
导读:我有一个这样的字典: migration_dict = {'30005': ['key42750','key43119','key44103',['key333'],['key444'],['keyxx']],'30003': ['key43220','key42244','key42230',['keyzz'],['kehh']]} 我怎样才能压平每个键的值以便得到类似的东西: migration_dict
我有一个这样的字典:

migration_dict = {'30005': ['key42750','key43119','key44103',['key333'],['key444'],['keyxx']],'30003': ['key43220','key42244','key42230',['keyzz'],['kehh']]}

我怎样才能压平每个键的值以便得到类似的东西:

migration_dict = {'30005': ['key42750','key333','key444','keyxx'],'keyzz','kehh']}

解决方法

您可以编写递归函数来展平值列表,并在字典理解中使用它来构建新字典:

def flatten(lst):
   for x in lst:
      if isinstance(x,list):
         for y in flatten(x): # yield from flatten(...) in Python 3
            yield y           #
      else:
         yield x

migration_dict = {k: list(flatten(v)) for k,v in dct.items()}
print(migration_dict)
# {'30005': ['key42750','kehh']}

它处理dict值列表中的任何嵌套深度.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读