首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >算法python数据结构

算法python数据结构
EN

Stack Overflow用户
提问于 2016-12-01 06:01:55
回答 2查看 78关注 0票数 0

我正在制作一个数据结构,它基本上就像一个python字典,但是它有3个键和一个输出。

例如,我有一个nXn矩阵和一些可能与它相匹配的标记。

所以我的伪码就像:

代码语言:javascript
运行
复制
my_dict[(2, 2, NN)] = 1.0
my_dict[(2, 4, NN)] = .12
my_dict[(0, 1, VP)] = .14
my_dict[(1, 1, VB)] = 1.0

python中的哪种数据结构可以实现这一点?( my_dict应该是什么?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-01 06:13:55

Python dict可以将tuples存储为密钥,但条件是它必须是可访问的。

而且,如果元组中的元素是可选的,则tuple是可选的。

因此,如果您的所有3个键都是可选的,那么您不需要创建另一个数据结构,而是可以使用dict本身。

代码语言:javascript
运行
复制
>>> my_dict = {}
>>> my_dict[(2, 2, 'NN')] = 1.0
>>> my_dict[(2, 4, 'NN')] = .12
>>> my_dict[(0, 1, 'VP')] = .14
>>> my_dict[(1, 1, 'VB')] = 1.0
>>> my_dict
{(0, 1, 'VP'): 0.14, (2, 4, 'NN'): 0.12, (2, 2, 'NN'): 1.0, (1, 1, 'VB'): 1.0}
>>> 
票数 3
EN

Stack Overflow用户

发布于 2016-12-01 06:05:25

代码语言:javascript
运行
复制
from collections import defaultdict
p = defaultdict();

p[(2,2,'A')] = 1.0

p[(2,4,'NN')] = 1.5

print p
>> defaultdict(None, {(2, 4, 'NN'): 1.5, (2, 2, 'A'): 1.0})

这是一个非常棒的库,它可以帮助您将元组(甚至另一个frozen_dict,唯一的条件是键必须是可选的)作为字典对象的“键”。

现在,如果您想验证这些元素:

代码语言:javascript
运行
复制
In [8]:p.has_key((2, 4, 'NN'))
Out[8]: True
In [11]: p.values()
Out[11]: [1.5, 1.0]

列出字典的所有键:

代码语言:javascript
运行
复制
In [13]: p.keys()
Out[13]: [(2, 4, 'NN'), (2, 2, 'A')]

你会喜欢的!!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40903619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档