Python 从具有单个键值对的dict列表中提取键

Python 从具有单个键值对的dict列表中提取键,python,list,dictionary,Python,List,Dictionary,我有一份清单如下: [{0: 26}, {0: 36}, {1: 1}, {0: 215}, {1: 63}, {0: 215}] 如何从中提取密钥列表 [0, 0, 1, 0, 1, 0] 使用dict.keys提取每个dict的键,转换为列表,然后提取第一个元素 >>> lst = [{0: 26}, {0: 36}, {1: 1}, {0: 215}, {1: 63}, {0: 215}] >>> [list(d.keys())[0] fo

我有一份清单如下:

[{0: 26},
 {0: 36},
 {1: 1},
 {0: 215},
 {1: 63},
 {0: 215}]
如何从中提取密钥列表

[0, 0, 1, 0, 1, 0]

使用
dict.keys
提取每个dict的键,转换为列表,然后提取第一个元素

>>> lst = [{0: 26}, {0: 36}, {1: 1}, {0: 215}, {1: 63}, {0: 215}]
>>> [list(d.keys())[0] for d in lst]
[0, 0, 1, 0, 1, 0]
或者,您可以使用下面的列表理解

>>> [k for d in lst for k in d.keys()]
[0, 0, 1, 0, 1, 0]

这些是键,因此您可以使用
dict.keys()
方法:

L = [{0: 26},
     {0: 36},
     {1: 1},
     {0: 215},
     {1: 63},
     {0: 215}]

L2 = [list(d.keys())[0] for d in L]
使用dict()的keys()函数

干杯

使用
dict.keys()
从字典中提取关键字,并在如下列表中使用:

lst = [{0: 26},
       {0: 36},
       {1: 1},
       {0: 215},
       {1: 63},
       {0: 215}]

print([y for x in lst for y in x.keys()])
# [0, 0, 1, 0, 1, 0]
或者,这应该进一步简化为:

print([y for x in lst for y in x])

因为,当你简单地在字典中迭代时,比如在x中为y迭代
,你实际上是在迭代字典的键。

我建议你简单地迭代字典列表,并使用列表理解来迭代每个字典的键,如下所示:

myList = [{0: 26}, {0: 36}, {1: 1}, {0: 215}, {1: 63}, {0: 215}]
newList = [k for d in myList for k in d]
print(newList) # [0, 0, 1, 0, 1, 0]

您可以这样做:

list = [list(d.keys())[0] for d in originalList] #  originalList is the first list you posted

以下是输出:[0,0,1,0,1,0]

您可以使用
dict.keys
itertools.chain
构建所有键的列表:

from itertools import chain

w = [{0: 26},
   {0: 36},
   {1: 1},
   {0: 215},
   {1: 63},
   {0: 215}]

keys = list(chain.from_iterable(map(dict.keys, w)))

或者使用
map
,尝试以下代码:

lod=[{0: 26},
 {0: 36},
 {1: 1},
 {0: 215},
 {1: 63},
 {0: 215}]
print(list(map(lambda x: list(x.keys())[0])))

祝你好运在列表中应用
.keys()
.values()
。我没有注意到这一点。谢谢你!或
[下一步(iter(i)),用于L中的i]
。请重新命名您的列表,在许多字体中,
l
看起来与
I
相同。此外,您不需要使用
d.keys()
<当迭代或使用
list(d)
时,code>d
应该足够了。
lod=[{0: 26},
 {0: 36},
 {1: 1},
 {0: 215},
 {1: 63},
 {0: 215}]
print(list(map(lambda x: list(x.keys())[0])))