Python中怎么实现1:n:1的数据结构?

查看:69
本文介绍了Python中怎么实现1:n:1的数据结构?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

首先有大量的数据,数据的分为3个单元组成:

类型    第一个值    第二值

比如现在有100条这样的数据。如何处理呢?
第一步
我的想法就是通过字典来构建1:n:1。
但是,现在情况是。如果类型为key的话,那么如果有相同类型要怎么处理?因为字典的key是唯一的。

第二步的情况是,我要通过第一个值来获取第二值。我要怎么才能在不知道第一个值的情况下通过第一个值来获取第二个值?

谢谢!~


可能表达不清楚,我举例说明一下1:n:1的
比如有两条数据是这样的

        类型        第一个值        第二个值
 (1)   zhangsan   2017-01-01     是的我来了
 (2)   zhangsan   2017-05-01     我要走了

然后我想要组成这样的东西:

    'zhangsan':{{'2017-01-01': '是的我来了'},{'2017-05-01':'我要走了'}}

这是我想要的结果。
也就是说。1:n:1表示 类型:第一个值:第二个值
不知道有没有可行的方案

解决方案

第一个: 如果在同一类型前提下, 第一个值是唯一的话, 那么可以试下下面的结构:

value = '1:n:1'
mapping = defaultdict(dict)
value_type, fir_val, sec_val = value.split(':')
mapping = {
    value_type: {
        fir_val: sec_val 
    }
}

上面的意思就是, 创建一个默认值为字典的字典mapping, 然后用类型第一个值分别作为索引的key, 我个人觉得, 在类型第一个值的共同约束下, 找到的第二个值应该是唯一的, 如果不是唯一的, 那么就要考虑是否覆盖, 还是以列表的形式存在

第二个:
如果你采用我上面的数据结构, 那么你在不知道第一个值的前提下, 只能遍历mapping[value_type], 然后判断值是否你想要的

这篇关于Python中怎么实现1:n:1的数据结构?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆