如何在Python列表推导式中从元组键字典提取多值?
解决方法:同时提取元组键的第二个元素和对应值
没问题,你只需要稍微调整一下列表推导式的返回内容就行!原来的代码只取了字典的值v,现在我们把元组键的第二个元素k[1]和v一起打包成新元组,就能得到你想要的结果了。
修改后的代码如下:
interimlist = [(k[1], v) for k, v in mydict.items() if k[0] == item[0]]
举个实际例子,用你给出的字典:
mydict = { (1111, 3454): 34.55555, (1123, 4665): 67.12, (1111, 9797): 5.09 } item = (1111, 任意值) # 这里item的第一个元素是1111
运行上面的代码后,interimlist的结果会是:
[(3454, 34.55555), (9797, 5.09)]
如果需要调整元组里的顺序(比如先值后第二个元素),只需要调换位置就行:
interimlist = [(v, k[1]) for k, v in mydict.items() if k[0] == item[0]]
这样就能满足你“输出元组组成的列表”的需求啦!
内容的提问来源于stack exchange,提问作者CapnShanty
相关产品推荐
相关产品推荐

