国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python中怎么實現1:n:1的數據結構?

瀏覽:117日期:2022-07-11 17:21:23

問題描述

首先有大量的數據,數據的分為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表示 類型:第一個值:第二個值不知道有沒有可行的方案

問題解答

回答1:

第一個: 如果在同一類型前提下, 第一個值是唯一的話, 那么可以試下下面的結構:

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

上面的意思就是, 創(chuàng)建一個默認值為字典的字典mapping, 然后用類型和第一個值分別作為索引的key, 我個人覺得, 在類型和第一個值的共同約束下, 找到的第二個值應該是唯一的, 如果不是唯一的, 那么就要考慮是否覆蓋, 還是以列表的形式存在

第二個:如果你采用我上面的數據結構, 那么你在不知道第一個值的前提下, 只能遍歷mapping[value_type], 然后判斷值是否你想要的

回答2:

這個1:n:1 是什么意思?映射關系嗎?不過這個并不重要,我有一個簡單粗暴的方法就是每條數據寫成一個3元組(type,val1,val2),然后把每條數據都存到數組里[];在構建數組的時候做3個dict,typeDict = {type:[arrIdx]},val1Dict={val1:[arrIdx]},val2Dict={val2:[arrIdx]}當要用type查找數據的時候就從typeDict從查找所有與type對應的記錄位置。同理val1和val2一樣。當要查找typeA,val1=n的時候只需要把從typeDict,val1Dict查出的結果集做交集就好了。

回答3:

如果大量數據,似乎應該是用數據庫比如mysql或者是pandas這樣專門處理數據的包會效率更高啊。pandas還有專門to_dict的函數。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日本亚欧乱色视频在线网站 | 2022久久免费精品国产72精品 | 在线观看亚洲精品国产 | 朝鲜一级毛片 | 99久久精彩视频 | 一级做a爰全过程免费视频毛片 | 国产成人十八黄网片 | 性欧美巨大的视频 | mm在线视频免费看 | 亚洲图片 自拍偷拍 | 美女黄色毛片免费看 | 深夜国产成人福利在线观看女同 | 国产黄三级三·级三级 | 男人的天堂在线观看免费 | 亚洲国产网站 | 亚洲欧美精选 | 国产亚洲欧美日韩综合综合二区 | 日韩大片高清播放器大全 | 精品久久久日韩精品成人 | 一级做a爱久久久久久久 | 成人免费高清视频 | 亚洲综合网在线观看 | 能在线观看的一区二区三区 | 日韩女人做爰大片 | 久久亚洲精品永久网站 | 国产一级做a爰片久久毛片99 | 精品国产综合区久久久久99 | 一级毛片无毒不卡直接观看 | 亚洲免费精品视频 | 免费大片黄手机在线观看 | 亚洲欧美v视色一区二区 | 欧美一级二级三级 | 亚洲国产日韩在线 | 久久88香港三级台湾三级中文 | 女人张开腿让男人捅爽 | 亚洲成人在线视频网站 | 国产成人免费影片在线观看 | 草草影院免费 | 亚洲超大尺度激情啪啪人体 | 中文偷拍视频在线观看 | 亚洲精品视频网 |