如何在保留所有元素的同时提取字典列表中的所有键? (Python)
How can I extract all keys in a list of dictionaries while keeping all elements? (Python)
假设我有以下字典列表:
list1 = [{'1': 1}, {'1': 1}, {'0': 1}, {'1': 1}, {'1': 1}, {'0': 1}]
如何将所有键提取到一个列表中?所需的输出应如下所示:
li = [1,1,0,1,1,0]
我尝试使用
randlis = [list[i].keys() for i in range len(list1)]
这不起作用,因为输出包括类型:
[dict_keys(['1']), dict_keys(['1']), dict_keys(['0'])]
谢谢!
您可以使用 list comprehension
简单地遍历元素
[key for _dict in list for key in _dict.keys()]
#['1', '1', '0', '1', '1', '0']
注意。您不应使用 list
或 str
int
等来命名变量。我在示例中保持不变,以便您更好地理解循环。请将您的 var 名称更改为其他名称。
您可以使用 itertools 中的链:
list1 = [{'1': 1}, {'1': 1}, {'0': 1}, {'1': 1}, {'1': 1}, {'0': 1}]
from itertools import chain
randlis = list(chain(*list1))
print(randlis)
['1', '1', '0', '1', '1', '0']
假设我有以下字典列表:
list1 = [{'1': 1}, {'1': 1}, {'0': 1}, {'1': 1}, {'1': 1}, {'0': 1}]
如何将所有键提取到一个列表中?所需的输出应如下所示:
li = [1,1,0,1,1,0]
我尝试使用
randlis = [list[i].keys() for i in range len(list1)]
这不起作用,因为输出包括类型:
[dict_keys(['1']), dict_keys(['1']), dict_keys(['0'])]
谢谢!
您可以使用 list comprehension
[key for _dict in list for key in _dict.keys()]
#['1', '1', '0', '1', '1', '0']
注意。您不应使用 list
或 str
int
等来命名变量。我在示例中保持不变,以便您更好地理解循环。请将您的 var 名称更改为其他名称。
您可以使用 itertools 中的链:
list1 = [{'1': 1}, {'1': 1}, {'0': 1}, {'1': 1}, {'1': 1}, {'0': 1}]
from itertools import chain
randlis = list(chain(*list1))
print(randlis)
['1', '1', '0', '1', '1', '0']