元组值按键

Mis*_*ion 30 python tuples

是否有可能从元组中获得价值:

TUPLE = (
    ('P', 'Shtg1'),
    ('R', u'Shtg2'),
    ('D', 'Shtg3'),
)
Run Code Online (Sandbox Code Playgroud)

通过调用STR键就好 P

Python说只有int才能用于这种类型的'查询'

我不能使用循环(开销太大......)

谢谢!

NPE*_*NPE 53

此类查询的规范数据结构是字典:

In [1]: t = (
   ...:     ('P', 'Shtg1'),
   ...:     ('R', u'Shtg2'),
   ...:     ('D', 'Shtg3'),
   ...: )

In [2]: d = dict(t)

In [3]: d['P']
Out[3]: 'Shtg1'
Run Code Online (Sandbox Code Playgroud)

如果使用元组,则无法避免循环(显式或隐式).


Mak*_*oto 9

您想要使用字典.

d = { 'P': 'Shtg1', 'R': u'Shtg2', 'D':'Shtg3' }
Run Code Online (Sandbox Code Playgroud)

然后您可以像这样访问密钥:

d['P'] # Gets 'Shtg1'
Run Code Online (Sandbox Code Playgroud)


Edu*_*nec 6

您可以尝试使用命名元组,而不是移动到完整的字典.有关此问题的更多信息.

基本上,您为字段定义标签,然后可以将它们称为value.tag1等.

引用文档:

命名的元组实例没有每个实例的字典,因此它们是轻量级的,并且不需要比常规元组更多的内存.


小智 6

dict(TUPLE)[key] 会做你想做的.

有一点内存开销,但速度很快.