Python изменить отрицательные значения на положительные значения в словаре - PullRequest
2 голосов
/ 19 апреля 2020

есть ли способ проверить, есть ли в моем словаре отрицательные значения (только целые числа)? И если да, чтобы изменить все отрицательные значения на положительные значения? Например:

D = {'Milk': -5, 'eggs': 144, 'flour': -10, 'chocolate': -2, 'yeast': 5, 'Cornflower': 3}

И я хочу получить:

D = {'Milk': 5, 'eggs': 144, 'flour': 10, 'chocolate': 2, 'yeast': 5, 'Cornflower': 3}

Ответы [ 2 ]

4 голосов
/ 19 апреля 2020

Просто используйте abs(), чтобы изменить абсолютные значения:

>>> {k: abs(v) for k, v in D.items()}
{'Milk': 5, 'eggs': 144, 'flour': 10, 'chocolate': 2, 'yeast': 5, 'Cornflower': 3}
4 голосов
/ 19 апреля 2020

Выполните итерацию по словарю, затем используйте встроенную функцию abs():

D = {'Milk': -5, 'eggs': 144, 'flour': -10, 'chocolate': -2, 'yeast': 5, 'Cornflower': 3}
for key, value in D.items():
   D[key] = abs(value)
print(D)

Вывод:

{'yeast': 5, 'Milk': 5, 'flour': 10, 'chocolate': 2, 'eggs': 144, 'Cornflower': 3}

Если вы хотите сделать что-то еще, когда значение отрицательное , используйте оператор if:

D = {'Milk': -5, 'eggs': 144, 'flour': -10, 'chocolate': -2, 'yeast': 5, 'Cornflower': 3}
for key, value in D.items():
   if value < 0:
       print('{} is negative'.format(key))
       D[key] = abs(value)
print(D)

Вывод:

chocolate is negative
Milk is negative
flour is negative
{'chocolate': 2, 'Cornflower': 3, 'Milk': 5, 'flour': 10, 'yeast': 5, 'eggs': 144}
...