我是python的新手,我正在为我的问题寻找解决方案: - 我有一个像元组: -
MY_TUPLE_CHOICE = (
('INS', 'Instagram'),
('FAB', 'Facebook'),
('YOU', 'Youtube'),
('TWT', 'Twitter'),
)
现在首先我希望使用Key inside Value获取Tuple Value,例如,如果一个键是'你'它应该返回('你','Youtube')
其次我希望在Tuplevalue中获得个人价值,例如关键是'你'它应该返回'Youtube'。
答案 0 :(得分:5)
您应该使用字典而不是元组:
d = dict(MY_TUPLE_CHOICE)
您现在可以按项目访问权限访问每个键的值,例如d['YOU']
将返回'Youtube'
。
如果您确实需要第一部分,即返回给定(key, value)
的{{1}}对,则只需使用key
。
答案 1 :(得分:2)
假设您必须使用tuple
并且无法将数据结构更改为dict
,则可以使用以下内容:
MY_TUPLE_CHOICE = (
('INS', 'Instagram'),
('FAB', 'Facebook'),
('YOU', 'Youtube'),
('TWT', 'Twitter'),
)
def get_from_tuple(my_tuple, key):
try:
return next(y for x, y in my_tuple if x == key)
except StopIteration:
return None
print(get_from_tuple(MY_TUPLE_CHOICE, 'YOU')) # Youtube
print(get_from_tuple(MY_TUPLE_CHOICE, 'ASD')) # None
尽管如此,请注意,对于dictionary
的使用,您的任务要求和您拥有的数据类型理想。如果您被允许使用一个,只需将您的元组转换为dict(MY_TUPLE_CHOICE)
。
答案 2 :(得分:0)
你可以建立一个dict理解的词典。
id: myGridView
delegate: Button {
Component.onCompleted: {
var p = mapToGlobal(x, y)
myCppObject.reportPosition(objectname, p.x, p.y)
}
Connections {
target: myGridView
onMovementEnded: {
var p = mapToGlobal(x, y)
myCppObject.reportPosition(objectname, p.x, p.y)
}
}
首次操作:
if (!moving) [...]
进行第二次操作
abbr_dict = {item[0]: item for item in MY_TUPLE_CHOICE}