仅打印字典中的特定值
Printing only specific values from a dictionary
我有一个 Python 字典,里面有 400 个元素。它们的形式是:
{'candidate 1' : 1, 'candidate 2' : 0, 'candidate 3' :0, 'candidate 4' :1}
等等大约400个值,我想打印字典中值为1的候选id。该值取0(不存在)或1(存在)。
我尝试使用 dict.values()
函数并尝试循环它并仅打印 dict.value == 1
处的值。但它只打印第一个值而不是迭代。
使用循环打印
d = {'candidate 1' : 1, 'candidate 2' : 0, 'candidate 3' :0, 'candidate 4' :1}
for k,v in d.items():
if v == 1:
print(k)
# candidate 1
# candidate 4
使用推导式获取列表
[k for k,v in d.items() if v==1]
# ['candidate 1', 'candidate 4']
应该这样做:
dict_ = {'candidate 1' : 1, 'candidate 2' : 0, 'candidate 3' :0, 'candidate 4' :1}
print(*(k for k, v in dict_.items() if v))
输出:
candidate 1 candidate 4
我有一个 Python 字典,里面有 400 个元素。它们的形式是:
{'candidate 1' : 1, 'candidate 2' : 0, 'candidate 3' :0, 'candidate 4' :1}
等等大约400个值,我想打印字典中值为1的候选id。该值取0(不存在)或1(存在)。
我尝试使用 dict.values()
函数并尝试循环它并仅打印 dict.value == 1
处的值。但它只打印第一个值而不是迭代。
使用循环打印
d = {'candidate 1' : 1, 'candidate 2' : 0, 'candidate 3' :0, 'candidate 4' :1}
for k,v in d.items():
if v == 1:
print(k)
# candidate 1
# candidate 4
使用推导式获取列表
[k for k,v in d.items() if v==1]
# ['candidate 1', 'candidate 4']
应该这样做:
dict_ = {'candidate 1' : 1, 'candidate 2' : 0, 'candidate 3' :0, 'candidate 4' :1}
print(*(k for k, v in dict_.items() if v))
输出:
candidate 1 candidate 4