dict中的嵌套列表和来自同一索引的值

2024-04-26 21:42:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典,它包含大约470个键/值对,其中值是一个嵌套列表。看起来是这样的:

{'sample1': [0.052333365, 0.048546686, 0.037446034, 0.034170007, 0.027255262, 0.014583427, 0.022703695, 0.02747237, 0.036779904, 0.047089636, 0.068311633, 0.131601903, 0.213325007, 0.262173714], 
'sample2': [0.499261188, 0.569225594, 0.971341941, 0.983553048, 1.047320154, 1.214003077, 1.382066271, 1.332965957, 1.353788699, 1.224310364, 1.27942017, 1.297752738, 1.215054777, 1.336544035], 
'sample3': [3.015670427, 3.608257648, 3.060244617, 2.879527679, 2.720453311, 2.889312783, 2.899236274, 2.762219639, 3.257009779, 3.113135178, 3.312874684, 3.328944661, 3.564360549, 3.480976541]}

它最初是这样创建的,因为访问数据的客户机是基于行的(示例)焦点。每项指标都是间隔2个月进行的测量。你知道吗

最近,这已经改变为更多的专栏性质,我得到的问题是,可以在一个特定的2个月内学习所有样本。你知道吗

我的问题是,有没有一种简单的方法来提取索引[1]或[5]中所有样本的值,并且仍然能够识别这些值来自哪个样本,而不必将数据重新创建到二维列表中?你知道吗


Tags: 数据示例列表客户机间隔字典指标焦点
3条回答

is there an easy way to extract the value in say index [1] or [5] for all samples and still be able to identify which sample the values came from without having to recreate data into a two dimensional list?

你可以用字典来理解

假设示例字典存储在一个名为data的变量中,我们要提取第6位的值

row_5 = {k: v[5] for k, v in data.items()} 
# row_5 prints
{'sample1': 0.014583427, 'sample2': 1.214003077, 'sample3': 2.889312783}

您可以构建一个函数,以一种通用的方式来实现这一点。你知道吗

def get_row(row_num, data_dict):
    return {k: v[row_num] for k, v in data_dict.items()}

如果您想要更多的数据处理功能,我建议您查看熊猫库。

可以使用字典items()和索引值:

for k, v in d.items():
    print(f'{k} -> {v[1]}, {v[5]}')

其中d是您的字典。你知道吗

对于给定的输入,输出:

sample1 -> 0.048546685999999999, 0.014583426999999999
sample2 -> 0.56922559399999995, 1.2140030770000001
sample3 -> 3.6082576479999999, 2.8893127829999998

我们可以使用字典理解来重新创建一个只包含来自指定索引的数据的字典。你知道吗

def get_data(dct, indexes):

    #Iterate through value list and collect element from specified indexes
    return {key: [value[idx] for idx in indexes] for key, value in dct.items()}

因此对于索引[1,5],输出将是

print(get_data(dct, [1,5]))
#{'sample1': [0.048546686, 0.014583427], 'sample2': [0.569225594, 1.214003077], 'sample3': [3.608257648, 2.889312783]}

相关问题 更多 >