Что не так с программой, которую я написал на python?

#python #dictionary

#python #словарь

Вопрос:

Описание вопроса таково: Напишите программу, чтобы получить ввод ключа и значения элемента в словаре.

Отобразите пару ключ-значение в формате словаря Python и найдите длину словаря.

Тестовый пример 1:

ВВОД

 3

23

33

43

32

33

34
  

ВЫВОД

 The dictionary is

{23: 32, 33: 33, 43: 34}

Length of dictionary is

3
  

 

Мой код:

 n = int(input())
di = dict()
for i in range(0, n):
  a = int(input())
  b = int(input())
  di[a] = b

print("The dictionary is")
print(di)
print("Length of dictionary is")
print(len(di))
  

Результат, который я получаю для того же ввода, что и приведенный выше, является:

 The dictionary is

{23: 33, 43: 32, 33: 34}

Length of dictionary is

3
  

В чем моя ошибка?

Комментарии:

1. похоже, что словарь создается ключом как числом, обратным числу как значению. может быть, вам нужно сохранить все значения в списке, а затем создать dictionary

2. Если вы найдете ответ, который отвечает на ваш вопрос, пожалуйста, примите его

Ответ №1:

Похоже, что вводимые данные предоставляются в следующем порядке: i) размер словаря ii) ключи iii) значения

Кажется, вы читаете это как ключ, значение, key value …

Ответ №2:

Предоставленные входные данные расположены в следующем порядке:

  1. размер словаря
  2. ключи
  3. значения

Итак, ваш код должен выглядеть примерно так :

 # collecting length
n=int(input())

# creating lists for keys and values
keys_list = []
values_list = []

# collecting keys
for i in range(0,n):
  a=int(input())
  keys_list.append(a)

# collecting values
for i in range(0,n):
  a=int(input())
  values_list.append(a)

# creating dictionnary
di = dict(zip(keys_list, values_list)) 

# printing result
print("The dictionary is")
print(di)
print("Length of dictionary is")
print(len(di))
  

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

Ответ №3:

Может быть, просто это:

 n = int(input('Input len of dict: '))

j = 0
l = []
while j != n * 2:
    l.append(input('input num: '))
    j  = 1


di = {int(x): int(x[::-1]) for x in l[:3] if x[::-1] in l}
print(f"The dictionary is {di}nLength of dictionary is {len(di)}")