当前位置: 首页 > 知识库问答 >
问题:

提取for循环中的字典值以填充列表

蒋典
2023-03-14

我有以下代码:

import numpy as np

result = {}
result['depth'] = [1,1,1,2,2,2]
result['generation'] = [1,1,1,2,2,2]
result['dimension'] = [1,2,3,1,2,3]
result['data'] = [np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0])]

for v in np.unique(result['depth']):
    temp_v = np.where(result['depth'] ==  v)
    values_v = [result[string][temp_v] for string in result.keys()]
    this_v = dict(zip(result.keys(), values_v))

在其中,我想创建一个名为“this_v”的新的dict”,其键与原始dict结果相同,但值较少。

该行:

values_v = [result[string][temp_v] for string in result.keys()]

给出一个错误

类型错误:列表索引必须是整数,而不是元组

我不明白,因为我可以创建ex=result[result.keys()[0]][temp\u v]很好。它只是不允许我使用for循环来完成这项工作,这样我就可以填充列表。

知道为什么它不起作用吗?


共有1个答案

林承悦
2023-03-14
匿名用户

我不确定您想要实现什么,但我可以解决您的问题:

np。其中返回一个元组,因此要访问,您需要给出索引temp_v[0]。此外,元组的值是一个数组,因此要循环该值,您需要在temp_v[0]中为a运行另一个循环a,这有助于您访问该值。

import numpy as np

result = {}
result['depth'] = [1,1,1,2,2,2]
result['generation'] = [1,1,1,2,2,2]
result['dimension'] = [1,2,3,1,2,3]
result['data'] = [np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0]), np.array([0,0,0])]

for v in np.unique(result['depth']):
    temp_v = np.where(result['depth'] ==  v)
    values_v = [result[string][a] for a in temp_v[0] for string in result.keys()]
    this_v = dict(zip(result.keys(), values_v))

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 如何并行地遍历两个列表? (7个答案) 5年前关闭。 我正在尝试使用for循环创建字典。这是我的代码: 输出: 为什么? 我正计划将其输出: 为什么不以这种方式输出?我们如何使其正确输出? 问题答案: 或者

  • 我如何循环年和月来显示下面的输出?显示期间的限制也是当月和年度,显示3年,包括截至日期的年度。意思是如果现在是2019年,那就展示2018年和2017年。 2019 1 201 9 2 201 9 3 201 9 4 201 9 5 201 9 6

  • 我试图对文本进行实体分析,我想把结果放在数据框中。目前,结果不存储在字典中,也不存储在数据框中。结果用两个函数提取。 df: 我有以下代码: 该代码给出了以下结果: 我已经在函数中创建了和一个数据框。这个线程解释了在循环中附加到数据帧是没有效率的。我不知道如何以有效的方式填充数据框。这些线程与我的问题相关,但它们解释了如何从存量数据填充数据框。当我尝试使用并返回时,我得到一个错误: 在entity

  • 我是不是误解了什么?据我所知,Julia中的Dataframes与R中的Dataframes的工作方式不同,但我无法全神贯注于如何使其工作。

  • 我正在尝试将POJO的jackson JSON字符串转换为JSON文件以导入MySQL。 我遇到的问题是,即使我在控制台中返回了JSON字符串,并且。json文件创建后,MySQL workbench抛出一个未处理的错误异常:bool()类型的对象没有长度 作为一个json文件,行为“true”。 如果我做文件被正确导入,但数据库中没有数据,如果被视为json,则只有一行。 我的POJO

  • 我正在对数组列表使用Java8迭代器。假设我有一个futures的ArrayList,在使用经典的for循环和使用ArrayList foreach之间有什么问题/建议吗?(除了不能从lambda表达式中抛出异常之外) 假设未来主义者同时被填补,最好的方法是什么?最后一个foreach示例是否容易出现问题?