使用字典或列表python

时间:2017-04-07 10:33:40

标签: python

我有以下声明

onehot  = collection.defaultdict(list)

我填写了二维向量。 当我打印onehot时,我得到的是:

print(onehot)
--->defaultdict<class'list'>,{0:['1200',1],1:['1203',2],2:['1400',4]}

这是完美的。现在我的问题是有没有办法让这个配对的&#39;来自onehot的价值。例如:

onehot 1200 ---> 1 
onehot 1800 ---> 32 

我是python的新手,所以我不确定。

更新 问题是我不知道列表中的1200在哪里,所以我想要并且我对第二维中的数字感兴趣。
所以我需要在列表中查找1200并返回第二维的值,在本例中为1

2 个答案:

答案 0 :(得分:3)

这是一个函数,它返回列表中的第二个元素,并使用第一个元素作为键(如果我理解正确的话,你想要的是什么)。 您也可以通过简单的方式扩展它以生成一个新的dict,然后直接使用它。

def getByFirstListElement(k):
        ret = [] #There could be multiple hits, this returns a list of all
        for key, value in onehot.enumerate():
             if value[0] == k:
                 ret.append(value[1])
        return ret

返回字典的版本:

def getPairDict(k):
            ret = {}#There could be multiple hits, this returns a list of all
            for key, value in onehot.enumerate():
                 if value[0] == k:
                     ret.update((value,))#Add the values to the dict
            return ret

答案 1 :(得分:1)

您现在可以将结构想象成一个多维数组。

如果你这样做:onehot[0][0] --> 1200onehot[0][1] --> 1

通过字典迭代如下:

for key in onehot:
    print("{} --> {}".format(onehot[key][0], onehot[key][1]))

result:
    1200 --> 1
    1203 --> 2
    1400 --> 4

您可以以您认为合适的任何方式播放数据:)