考虑元组
tuple_exp = ((1, 'Raj'),
(2, 'Robert'),
(3, 'Kumar'))
我从该值中获得值"Kumar"
需要相应的值3
有什么想法吗?
提前致谢
答案 0 :(得分:2)
Python中有一个名为dict
的内置数据结构。它将一个值映射到另一个
要将元组转换为此类结构,您可以使用字典理解表达式:
dc = {v: k for k, v in tuple_exp}
这里发生的是tuple_exp
在迭代期间一次返回一个元组,并且该元组分别被解包为变量k
和v
。然后添加一个字典条目,其中键是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