通过键获取元组值

44 投票
5 回答
99585 浏览
提问于 2025-04-17 09:32

有没有办法从元组中获取值:

TUPLE = (
    ('P', 'Shtg1'),
    ('R', u'Shtg2'),
    ('D', 'Shtg3'),
)

通过像 P 这样的字符串键来调用

Python 说这种“查询”只能用整数来进行

我不能使用循环(太耗资源了...)

谢谢!

5 个回答

9

你想要用字典来代替其他东西。

d = { 'P': 'Shtg1', 'R': u'Shtg2', 'D':'Shtg3' }

然后你可以这样来访问这个键:

d['P'] # Gets 'Shtg1'
16

dict(TUPLE)[key] 这个写法可以满足你的需求。

虽然会占用一点额外的内存,但速度很快。

66

对于这类查询,最常用的数据结构是字典:

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

In [2]: d = dict(t)

In [3]: d['P']
Out[3]: 'Shtg1'

如果你使用元组,就无法避免循环(无论是显式的还是隐式的)。

撰写回答