跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 一个 dict 中的 key 包含 list, list 里边多个字典,用 2 个 for 怎么把 key 放到一个 list?
未分類
3 9 月 2020

一个 dict 中的 key 包含 list, list 里边多个字典,用 2 个 for 怎么把 key 放到一个 list?

一个 dict 中的 key 包含 list, list 里边多个字典,用 2 个 for 怎么把 key 放到一个 list?

資深大佬 : css3 12

# 最终想要这个类型的数据 {"key": ["a", "b"]} mylist= {"key": [{'a': '1'}, {'b': '2'}]} all = {} for k, v in mylist.items():     for j in v:         all.setdefault(j, []).append(j.keys())  # TypeError: unhashable type: 'dict' 怎么设置字典的 value 默认类型是 list,且可以 append?  

大佬有話說 (8)

  • 資深大佬 : JacHammer

    “`python
    mylist= {“key”: [{‘a’: ‘1’}, {‘b’: ‘2’}]}
    all = {“key”: []}
    for k, v in mylist.items():
    for j in v:
    all[‘key’] += j.keys()
    “`

  • 主 資深大佬 : css3

    @JacHammer 可是 mylist 里边有多个 key,我举例只写了一个

  • 資深大佬 : maddevil

    “`
    mylist = {“key”: [{‘a’: ‘1’}, {‘b’: ‘2’}]}
    all = {}
    for k, v in mylist.items():
    all[k] = []
    for j in v:
    all[k] += j.keys()
    “`

  • 資深大佬 : Trim21

    ‘dict’ 怎么设置字典的 value 默认类型是 list,且可以 append?

    from collections import defaultdict

    d = defaultdict(list)
    d[1].append(2)
    print(d[1])

  • 資深大佬 : maddevil

    其实还可以一行搞定:
    {k: [j for i in v for j in i.keys()] for k, v in mylist.items()}

  • 資深大佬 : GoLand

    In [30]: example = {‘key’: [{‘a’: ‘1’}, {‘b’: ‘2’, ‘c’: ‘3’}], ‘key2’: [{‘c’: 1}, {‘d’: 2}]}

    In [31]: res = {}

    In [32]: for k, v in example.items():
    …: res[k] = list(itertools.chain.from_iterable(map(lambda x: x.keys(), v)))
    …:

    In [33]: res
    Out[33]: {‘key’: [‘a’, ‘b’, ‘c’], ‘key2’: [‘c’, ‘d’]}

  • 資深大佬 : h272377502

    主什么操作,j 的 type 是 dict,dict 是 unhashable 的对象,你的目的明明是以 k 作为 value 。。。
    最后一行改成这样吧 all.setdefault(k, []).append(list(j.keys()))

  • 主 資深大佬 : css3

    @css3 @JacHammer @maddevil @Trim21 @GoLand @h272377502
    感谢各位老哥老姐,学习了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具