Найти - Пользователи
Полная версия: Нужно написать код для словарей
Начало » Python для новичков » Нужно написать код для словарей
1
watermelon
Помогите с заданием, пожалуйста. Сам не могу написать код, ибо я бот в питоне:

Есть список словарей. Значения ключей - положительные числа, а значения - строки.
Ключи разных словарей могут пересекаться.
Сформировать на основе списка новый словарь, у которого будут все ключи словарей из списка
с соответствующими значениями. Если ключи повторяются, то взять за значение наибольшее из разных
словарей.
py.user.next
watermelon
Значения ключей - положительные числа, а значения - строки.
watermelon
Если ключи повторяются, то взять за значение наибольшее из разных
словарей.
Наибольшее из разных словарей? Наибольшее что?
watermelon
py.user.next
Как я понял речь идет о значениях, и если ключи повторяются, то взять наибольший из этих значений. То есть если у нас пенал - 1, ручка - 1, то к ключу 1 будет взято значение пенал, ибо буква п встречается раньше чем буква р в алфавите. А если это не так, то я не знаю, все написанное перед этим - слова преподавателя
py.user.next
  
>>> lst = [
...     {1: 'a', 2: 'b', 3: 'e'},
...     {1: 'z', 2: 'b', 3: 'c', 4: 'd'},
...     {1: 'a', 2: 'c', 3: 'c', 5: 'b', 6: 'a'},
...     {1: 'a', 2: 'b', 3: 'c', 4: 'x'},
...     {1: 'a', 2: 'b', 3: 'c', 5: 'a'}
... ]
>>> 
>>> out = {}
>>> for i in lst:
...     for k, v in i.items():
...         if k not in out:
...             out[k] = v
...         elif v > out[k]:
...             out[k] = v
... 
>>> out
{1: 'z', 2: 'c', 3: 'e', 4: 'x', 5: 'b', 6: 'a'}
>>>
watermelon
py.user.next
Объясните код начиная со строки for k, v in i.item()
для чего нужен .item() и что происходит далее?
py.user.next
watermelon
начиная со строки for k, v in i.item()
для чего нужен .item()
  
>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>> d
{1: 'a', 2: 'b', 3: 'c'}
>>> list(d.items())
[(1, 'a'), (2, 'b'), (3, 'c')]
>>>
Возввращает пары (ключ, значение) из словаря.
ключ - key, поэтому сокращение - буква k
значение - value, поэтому сокращение - буква v

watermelon
что происходит далее?
Создаётся новый словарь из пустого словаря.
Если ключа нет в новом словаре, то добавить ключ и его значение в новый словарь, иначе если значение в старом словаре по этому ключу больше значения в новом словаре по этому ключу, то в новом словаре для этого ключа установить новое значение.
watermelon
py.user.next
Спасибо огромное!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB