Python 从元组的元组中的另一个值获取值,而不使用for循环

Python 从元组的元组中的另一个值获取值,而不使用for循环,python,Python,以元组为例 tuple_exp = ((1, 'Raj'), (2, 'Robert'), (3, 'Kumar')) 我有值“Kumar”从该值需要相应的值3 有什么想法吗 提前感谢Python中有一个内置的数据结构,名为dict。它将一个值映射到另一个值 要将元组转换为这种结构,可以使用字典理解表达式: dc = {v: k for k, v in tuple_exp} 这里发生的事情是,tuple\u exp在迭代期间一次返回一个tu

以元组为例

tuple_exp = ((1, 'Raj'),
             (2, 'Robert'),
             (3, 'Kumar'))
我有值
“Kumar”
从该值需要相应的值
3
有什么想法吗


提前感谢

Python中有一个内置的数据结构,名为
dict
。它将一个值映射到另一个值

要将元组转换为这种结构,可以使用字典理解表达式:

dc = {v: k for k, v in tuple_exp}
这里发生的事情是,
tuple\u exp
在迭代期间一次返回一个tuple,并且该tuple分别被解压为变量
k
v
。然后添加一个字典条目,其中键为
v
(元组中的第二个值),值为
k
(元组中的第一个值)

构造之后,可以使用索引运算符
[]
通过键从字典中获取值:

>>> dc['Kumar']
3

好的,为了理解,元组是不能修改的(与列表或字典相反)。因此,我们必须找到另一种方法来实现这一点(我使用Python2.7)

如果不使用“for”循环,我会这样做:

1) 实例元组:

> tuple_exp= (
(1, 'Raj'),
(2, 'Robert'),
(3, 'Kumar'),
)
2) 使用dict转换将元组转换为字典:

> my_dict = dict(tuple_exp)
3) 使用zip从字典中反转键和值

> inv_dict = dict(zip(my_dict.values(), my_dict.keys()))
4) 检查


映射
可用于查找搜索元素的位置(
索引
)。一旦找到位置,则访问其中的值将是紧凑的

index = list(map(lambda i: i[1], tuple_exp)).index('Kumar')
tuple_exp[index][0] 

为什么不简单地使用dict?我们可以使用dict?但是有可能吗?你试过地图吗?罗伯特?那效率很低。它不仅创建了两个字典,而且最终在内容上循环两次是的,但至少与你相反,我没有一个可见的“for”循环,这是这里的问题(如果你没有仔细阅读)。但是我什么也没说,因为如果我不能给讨论带来任何东西的话,我已经读过这个问题了。没有for循环是不可能做到的。你决定用一个显式循环换成两个隐式循环。你所说的对讨论没有任何意义。你只是想说最后一句话,所以添加你想要的评论。。blablasuper Rajez,这也是个好主意
index = list(map(lambda i: i[1], tuple_exp)).index('Kumar')
tuple_exp[index][0]