小编sbe*_*ria的帖子

python中的快速数据比较

我想以2种不同长度的字典形式比较大量数据.(编辑)

post = {0: [0.96180319786071777, 0.37529754638671875], 
        10: [0.20612385869026184, 0.17849941551685333],
        20: [0.20612400770187378, 0.17510984838008881],...}

pre = {0: [0.96180319786071777, 0.37529754638671875],
       1: [0.20612385869026184, 0.17849941551685333],
       2: [0.20612400770187378, 0.17510984838008881],
       5065: [0.80861318111419678, 0.76381617784500122],...}
Run Code Online (Sandbox Code Playgroud)

我们需要得到的答案是5065:[0.80861318111419678,0.76381617784500122].这是基于我们只是比较价值而不是指数的事实.

我只使用这个键值对来记住数据序列.如果需要,可以用列表/集替换数据类型.我需要找出关键:与字典不相同的元素的值(索引和值)对.

我使用的代码非常简单..

new = {}
found = []

for i in range(0, len(post)): 
    found= []
    for j in range(0, len(pre)): 
        if post[i] not in pre.values():
            if post[i] not in new:
                new[i] = post[i]
                found.append(j)             
                break
    if found:
        for f in found: pre.pop(f)
Run Code Online (Sandbox Code Playgroud)

new {}包含我需要的元素.我面临的问题是这个过程太慢了.处理有时需要一个多小时.有时数据可能会大得多.我需要它更快.

有没有一种有效的方法来做我想要实现的目标?除非绝对必要,否则除了那些与python 2.5(64位)捆绑在一起的外部软件包之外我不想依赖外部软件包.

谢谢你们.

python comparison dictionary list

3
推荐指数
1
解决办法
2934
查看次数

标签 统计

comparison ×1

dictionary ×1

list ×1

python ×1