Как создать словарь от начала до середины списка?

Есть список случайных чисел в диапазоне. На базе этого списка нужно создать словарь, где первая половина списка будет ключами, а вторая их значениями.

Начало кода такое

n = int(input("Введите целое число:"))

list_numbers = list()

for num in range(n):
    list_numbers.append(random.randint(0, 100))
print(f"Список случайных чисел: {list_numbers}")

Ответы (1 шт):

Автор решения: Dmitri Galkin

Используйте zip() для того, чтобы сложить первую и вторую половину.

Пример с учетом того, что числа не повторяются при генерации:

import random

n = int(input("Введите целое число:"))

list_numbers = list()

for num in range(n):
    list_numbers.append(random.randint(0, 100))

print(f"Список случайных чисел: {list_numbers}")

m = n // 2

if n % 2 == 0:
    keys = list_numbers[:m]
    values = list_numbers[m:]
else:
    keys = list_numbers[:m]
    values = list_numbers[m+1:]
    keys.append(list_numbers[m])
    values.append(list_numbers[m])

r = dict(zip(keys, values))
print(r)
→ Ссылка