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]