根据键的值将字典键附加到列表中

2024-09-19 23:39:04 发布

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

在for循环中进行迭代时,如果某个dictionary项的值为1,我会尝试将该项的键附加到列表中。你知道吗

我得到的是:

peeps = {'scoobydoo':0, 'shaggy':0, 'scrappydoo':0, 'velma':1, 'freddy':0, 'daphne':1}
ignore_list = []
for peep in peeps:
    if peep == 1:
        ignore_list.append(peep)
print(ignore_list)

然而,这并没有给我我所期望的:

['velma', 'daphne']

它打印一个空列表:

[]

Tags: in列表fordictionarylistignore我会peep
3条回答

您可以遍历字典的键和值来完成所需的操作:

peeps = {'scoobydoo':0, 'shaggy':0, 'scrappydoo':0, 'velma':1, 'freddy':0, 'daphne':1}
ignore_list = []
for key, value in peeps.items():
    if value == 1:
        ignore_list.append(key)
print(ignore_list)

您没有检查,只检查键本身。你知道吗

通过访问来检查值:

for peep in peeps:
    if peeps[peep] == 1:
        ignore_list.append(peep)

或同时循环键和值:

for peep, peep_value in peeps.items():
    if peep_value == 1:
        ignore_list.append(peep)

您可以在此处使用列表理解一步建立列表:

ignore_list = [peep for peep, peep_value in peeps.items() if peep_value == 1]

你在迭代键而不是值。因此,您需要将键与实际字典结合起来,以检查对应键的值是否等于1。你知道吗

peeps = {'scoobydoo':0, 'shaggy':0, 'scrappydoo':0, 'velma':1, 'freddy':0, 'daphne':1}
ignore_list = []
for peep in peeps:
    if peeps[peep] == 1:
        ignore_list.append(peep)
print(ignore_list)

或者

peeps = {'scoobydoo':0, 'shaggy':0, 'scrappydoo':0, 'velma':1, 'freddy':0, 'daphne':1}
print([key for key,value in peeps.items() if value == 1])

相关问题 更多 >