如何将字典转换为键值为新列的数组

时间:2019-02-25 05:26:30

标签: python dictionary

我有一个这样的字典:

{'ABC': array([
         [ 0.,1.,2.],
         [ 3.,4.,5.],
         [ 6.,7.,8.]]),
        array([
         [ 0.,1.,2.],
         [ 3.,4.,5.],
         [ 6.,7.,8.]])
 'DEF': array([
         [ 0.,1.,2.],
         [ 3.,4.,5.],
         [ 6.,7.,8.]]),
        array([
         [ 0.,1.,2.],
         [ 3.,4.,5.],
         [ 6.,7.,8.]])}

我想要一个这样的新商品:

['ABC','ABC','DEF','DEF']

每个键对应值中的每个元素并重复。

我尝试过:

[(key,val) for (key,val) in d1.items()]

但密钥没有重复

1 个答案:

答案 0 :(得分:0)

您的字典有一些无效的语法,但是我想您要这么做:

[key for key, val in d1.items() for _ in val]

例如:

d1 = {'ABC': [1, 2, 3], 'DEF': [4, 5], 'GHI': [6]}
print([key for key, val in d1.items() for _ in val])
# ['ABC', 'ABC', 'ABC', 'DEF', 'DEF', 'GHI']