在不使用for循环的情况下从元组元组中的另一个值获取值

时间:2017-08-30 08:07:08

标签: python

考虑元组

tuple_exp = ((1, 'Raj'),
             (2, 'Robert'),
             (3, 'Kumar'))

我从该值中获得值"Kumar"需要相应的值3 有什么想法吗?

提前致谢

3 个答案:

答案 0 :(得分:2)

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

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

dc = {v: k for k, v in tuple_exp}

这里发生的是tuple_exp在迭代期间一次返回一个元组,并且该元组分别被解包为变量kv。然后添加一个字典条目,其中键是v(元组中的第二个值),值是k(元组中的第一个值)。

构造之后,您可以使用索引操作符[]按键从字典中获取值:

>>> dc['Kumar']
3

答案 1 :(得分:1)

std::string test_string = "this is a test"; std::cout << "Before modifications: " << test_string << "\n"; std::transform(test_string.begin(), test_string.end(), test_string.end(), std::toupper); std::cout << "After modifications: " << test_string << "\n"; 可用于查找搜索元素的位置(map)。找到位置后,访问其中的值将是紧凑的。

index

答案 2 :(得分:0)

Ok那么只是为了理解,元组是你无法修改的东西(与列表或词典相对立)。所以我们必须找到另一种方法(我使用python 2.7)。

不使用&#39; for&#39;循环我会这样做:

1)Instanciate元组:

> tuple_exp= (
(1, 'Raj'),
(2, 'Robert'),
(3, 'Kumar'),
)

2)使用 dict 转换将元组转换为dictionnary:

> my_dict = dict(tuple_exp)

3)使用 zip

从字典中反转键和值
> inv_dict = dict(zip(my_dict.values(), my_dict.keys()))

4)检查

> inv_dict['Kumar']
> 3