我有以下声明
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
答案 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] --> 1200
,onehot[0][1] --> 1
通过字典迭代如下:
for key in onehot:
print("{} --> {}".format(onehot[key][0], onehot[key][1]))
result:
1200 --> 1
1203 --> 2
1400 --> 4
您可以以您认为合适的任何方式播放数据:)