簡體   English   中英

我想從字典元素創建列表

[英]I want to create list from dictionary elements

我有這樣的嵌套字典。

{'A': {'21-26': 2,
  '26-31': 7,
  '31-36': 3,
  '36-41': 2,
  '41-46': 0,
  '46-51': 0,
  'Above 51': 0},
 'B': {'21-26': 2,
  '26-31': 11,
  '31-36': 5,
  '36-41': 4,
  '41-46': 1,
  '46-51': 0,
  'Above 51': 3}}

我想從第二個字典中按鍵創建列表。 而且我不想在我的列表中重復。

所需輸出為

ls = ['21-26','26-31','31-36','36-41','41-46','46-51','Above 51']

感謝您的時間和考慮。

您可以使用:

>>> list(set(key for val in d.values() for key in val.keys()))
['21-26', '36-41', '31-36', '46-51', 'Above 51', '26-31', '41-46']

其中d是您的字典。

簡單的集合理解,然后轉換為列表。 a是你的字典。

list({k for v in a.values() for k in v.keys()}) 

輸出順序是隨機的,但您可以按照自己的喜好進行排序。

你能用熊貓嗎? 如果是這樣的話:

import pandas as pd
a = {'A': {'21-26': 2, '26-31': 7, '31-36': 3, '36-41': 2, '41-46': 0, '46-51': 0, 'Above 51': 0}, 'B': {'21-26': 2, '26-31': 11, '31-36': 5, '36-41': 4, '41-46': 1, '46-51': 0, 'Above 51': 3}}

pd.DataFrame(a).index.to_list()

輸出:

['21-26', '26-31', '31-36', '36-41', '41-46', '46-51', 'Above 51']

您可以使用chain.from_iterable()來鏈接內部字典並使用dict.fromkeys()來刪除重復項:

from itertools import chain

c = chain.from_iterable(dct.values())
result = list(dict.fromkeys(c))

暫無
暫無

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

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