Как создать словарь от начала до середины списка?
Есть список случайных чисел в диапазоне. На базе этого списка нужно создать словарь, где первая половина списка будет ключами, а вторая их значениями.
Начало кода такое
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)