我想从字典元素创建列表

时间:2019-12-07 08:14:56

标签: python python-3.x dictionary

我有类似这样的嵌套词典。

{'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']

感谢您的时间和考虑。

4 个答案:

答案 0 :(得分:1)

您可以使用:

2019-12-07 02:17:00 CST [14757-15] moedepi@SnooSongFarms LOG:  statement: BEGIN
2019-12-07 02:17:00 CST [14757-16] moedepi@SnooSongFarms LOG:  statement: select "Sensor"."PersistTelemetry"('phSensorA.haoshiAnalogPh', 'ph', 8.8, '2019-12-06 18:32:36')
2019-12-07 02:17:00 CST [14757-17] moedepi@SnooSongFarms LOG:  statement: ROLLBACK

>>> 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'] 是您的字典。

答案 1 :(得分:1)

简单设置理解,然后转换为列表。 a是您的字典。

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

输出顺序是随机的,但是您可以根据自己的喜好进行排序。

答案 2 :(得分:0)

您可以使用熊猫吗?如果是这样

@FormUrlEncoded
@POST("CUSTOM_URL")
Call<ResponseBody> customMethodName(
  @Header("custom_header") String customHeader,
  @Field("custmom_field_as_body") int customFieldAsBody
);  

输出:

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()

答案 3 :(得分:0)

您可以使用chain.from_iterable()链接内部词典,并使用dict.fromkeys()删除重复项:

from itertools import chain

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