Есть ли способ удалить ключ из словаря, используя его индексную позицию (если она есть) вместо использования фактического ключа (чтобы избежать, например, del d['key']
, но вместо этого использовать индексную позицию)?
Если есть, не беспокойтесь о прочтении остальной части этого вопроса, так как это то, что я тоже ищу.
Итак, в качестве примера для моего случая, я имеюсловарь d, который использует списки для значений:
d = {'acd': ['cad'], 'abd': ['bad', 'dab']}
Я хочу полностью удалить каждый ключ из такого словаря, у которого значения значений имеют длину менее 2 (поэтому, если есть только 1 элемент).
Итак, в этом примере я бы хотел удалить ключ 'acd'
, поскольку в списке его значений есть только 1 элемент ['cad']
.'abd'
имеет 2 элемента ['bad', 'dab']
, поэтому я не хочу его удалять - только если он содержит 1 или менее элементов.Этот словарь является лишь примером - я работаю с гораздо большей версией, чем эта, и мне нужно, чтобы он удалил все ключи значений одного элемента.
Я написал это для тестирования, но я не уверен, какиди, убирая ключи, которые я хочу, или определяя, какие они есть.
d = {'acd': ['cad'], 'abd': ['bad', 'dab']}
index_pos = 0
for i in d.values():
#Testing and seeing stuff
print("pos:", index_pos)
print(i)
print(len(i))
if len(i) < 2:
del d[???]
#What do I do?
index_pos += 1
Я использовал index_pos, потому что думал, что это может быть полезно, но я не уверен.
Я знаю, что могу удалить запись из словаря, используя
del d['key']
Но как мне избежать использования ключа и, например, использовать вместо него позицию индекса или как узнать, что это за ключ, чтобы я мог удалить его?