首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在字典列表中引用和返回值

如何在字典列表中引用和返回值
EN

Stack Overflow用户
提问于 2017-10-29 18:11:35
回答 1查看 58关注 0票数 0

我有一份名单。

每个列表中都有几千个字典列表。一个列表可能包含多个字典、一个字典,也可能是空的。

下面是一个简短的列表,列表中有三个示例行:

代码语言:javascript
运行
复制
list_of_lists = [[], [{'text': 'analytics', 'indices': [18, 28]}, {'text': 'datascience', 'indices': [35, 47]}, {'text': 'restaurants', 'indices': [54, 66]}, {'text': 'machinelearning', 'indices': [92, 108]}, {'text': 'bigData', 'indices': [109, 117]}, {'text': 'CRM', 'indices': [118, 122]}], [{'text': 'python', 'indices': [49, 56]}, {'text': 'datascience', 'indices': [57, 69]}]

因此,在这个列表中有一个空列表,一个包含6个字典的列表,还有一个包含两个字典的列表。

我需要从包含'text':‘STRING’的键: value对中提取值。

另外,重要的是,每个值都应该返回一个具有相同索引的列表中的原始输入列表。换句话说,对于第二个6键:值对的列表,所有6个值都应该在一个列表中返回,该列表与原始list_of_lists中的索引相同。

下面是我希望从上面的例子中得到的输出:

代码语言:javascript
运行
复制
list_of_values = [[], ['analytics', 'datascience', 'restaurants', 'machinelearning', 'bigData', 'CRM', 'python'], ['python', 'datascience']]

我已经编写了下面的代码,这几乎可以实现我想要的。它返回所有这些字符串的列表,但是它不返回相同的索引,它还返回我不想要的索引字典。

代码语言:javascript
运行
复制
new_list_of_value_lists = []
for line in list_of_lists:
    for dictionary in line:
        for key, value in dictionary.items():
            new_list_of_value_lists.append(value)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-29 18:15:03

为每个嵌套的dicts列表创建一个不同的列表并附加到父列表中。空列表获得零次迭代,因此结果列表保持为空,而其他列表的值则收集在列表理解中。

代码语言:javascript
运行
复制
list_of_values = []
for lst in list_of_lists:
    list_of_values.append([dct['text'] for dct in lst])

print(list_of_values)
# [[], ['analytics', 'datascience', 'restaurants', 'machinelearning', 'bigData', 'CRM'], ['python', 'datascience']]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47003572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档