Переменная будет изменяться для каждой итерации, и я хочу напечатать ее в словаре в качестве ключа - PullRequest
1 голос
/ 21 ноября 2019
for i in range(N):
  k1,k2,k3,k4 = input().split(' ')
  k2 = float(k2)
  k3 = float(k3)
  k4 = float(k4)
  score = (k2+k3+k4)/3
a = {print(k1) : score}

Вход имеет 4 значения: string, int, int, int. Я хочу установить значение k1 в качестве ключа и счет в качестве значения. Когда я попробовал приведенный выше код, это был вывод: 1

Ответы [ 2 ]

0 голосов
/ 21 ноября 2019

Сначала вам нужно инициализировать словарь, а затем вы можете вставить в него элементы с помощью dictionary[key] = value

# Initialise a dictionary where we can store values to
a = {}

# How many times we will ask for values
n = int(input('number of values: '))

for i in range(n):
    k1,k2,k3,k4 = input('give input: ').split(' ')
    k2 = float(k2)
    k3 = float(k3)
    k4 = float(k4)
    score = (k2+k3+k4)/3
    # Store the score value to k1 key
    a[k1] = score

# Print the dictionary after the loop has been completed
print(a)

Это сделает следующее:

number of values: 3
give input: first 1 2 3
give input: second 4 5 6
give input: third 10 20 30
{'first': 2.0, 'second': 5.0, 'third': 20.0}
0 голосов
/ 21 ноября 2019

Вот код, который работает (очень маленькая модификация от вашего исходного кода)

for i in range(4):
    k1, k2, k3, k4 = input().split(" ")
    k2 = float(k2)
    k3 = float(k3)
    k4 = float(k4)
    score = (k2 + k3 + k4) / 3
    print({k1: score})

Если вы запустите его со значением 1 10 20 30, скрипт вернет:

{'1': 20.0}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...