如何从满足Python中True value参数的字典中返回元组

2024-06-02 00:00:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的字典,我需要返回只有一个真正值作为元组的字典键。例如,给定下面的my dictionary,函数应该返回(“madam”,“1221”)

revDict={'hello world':False,'madam':True,'1221':True}

我尝试了几种方法,但没有一种有效:

#1

myTrueDict = (i for i in revDict if revDict.values() = True)
print(myTrueDict)
myTuple = tuple(myTrueDict.keys())
print(myTuple)

#2

myTrueDict = {k:v for (k,v) in revDict.items() if v = True}
print(myTrueDict)
myTuple = tuple(myTrueDict.keys())
print(myTuple)

Tags: intruefordictionaryif字典mykeys
2条回答

如果您用if v = True修复了一个打字错误,那么第二个解决方案就可以工作了,它应该在if v == True

revDict = {'hello world': False, 'madam': True, '1221': True}
myTrueDict = {k:v for (k,v) in revDict.items() if v == True}
myTuple = tuple(myTrueDict.keys())
print(myTuple)

但是,您可以简单地获取忽略值的键,如下所示:

tuples = tuple(k for k, v in revDict.items() if v)
print(tuples)

以下是根据您的#1示例提出的工作建议:

revDict = {'hello world': False, 'madam': True, '1221': True}
myTrueDict = tuple(i for i in revDict if revDict[i] == True)
print(myTrueDict)

输出:

('madam', '1221')

相关问题 更多 >