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