У меня есть словарь, который я хочу перебрать и изменить его значение, но я думаю, что изменение длины может привести к ошибке, есть ли хорошие способы сделать это?
пример:
d = {'a':'orange','b':'pineapple','c':'dragonfruit'}
rating = {'orange':3, 'pineapple':4, 'dragonfruit':4.5, 'apple':3, 'pear': 3.5}
for key, value in d.items():
if some conditions met:
del d['a'] or d['e']='apple' # (or is not operator, i mean literally one of the operation add or delete item...)
например:
for key, value in d.items():
if rating[value]<4:
del d[key]
или
d = {'a':['orange'],'b':['pineapple','peach'],'c':['dragonfruit']}
rating = {'orange':3, 'pineapple':4, 'dragonfruit':4.5, 'apple':3, 'pear': 3.5, 'peach': 5}
for key, value in d.items():
rating_sum = sum([ rating[v] for v in value])
if rating_sum > 8 and len(value)>1:
d['e'] = d[key].pop(-1)
вероятно, не лучший пример ... означает, что длина словаря изменяется в цикле.