Словарь выводится как строка в Python - PullRequest
1 голос
/ 28 января 2020

Глядя на операторы печати в следующем формате, также необходимо указать любые новые страны и население, введенные в качестве входных данных. Я могу сделать код для отображения добавленного словаря в формате dict, но с трудом отображается в следующем формате. Что я делаю неправильно?

Ожидаемый результат:

   Vatican has Population 800
   Vatican has Population 10200
   ...
def main():
        countryPop = {'Vatican': 800, 'Tuvalu': 10200, 'Nauru': 11000, 'Palau': 17900,
                      'San Marino': 33420, 'Monaco': 38300, 'Marshall Islands': 55500}

        # while loop to repeat the input request and population display until 0 is entered
        while True:
            ctry = input('Enter country:')
            population = countryPop.get(ctry)
            print('Population:',population)
            if ctry == '0':
                break

            # Else if Loop meant to activate if a country unknown to the original dictionary is entered
            elif ctry not in countryPop:
                popIn = input("Country Pop:")
                countryPop[ctry] = popIn

        # printing the new list after breaking from the loop
        for ctry in countryPop:
            print(str(ctry)+" has population "+str(popIn))
    if __name__ == '__main__':
        main()

Ответы [ 2 ]

2 голосов
/ 28 января 2020

Это напечатает, что вы хотите

for ctry, pop in countryPop.items():
    print(f"{ctry} has population {pop}")
2 голосов
/ 28 января 2020

Вы можете использовать синтаксис for key in dict для перебора ключей словаря. Затем внутри вашего l oop вы можете использовать dict[key], чтобы прочитать, что сохранено в этом ключе. Таким образом, будет работать следующее:

countryPop = {'Vatican': 800, 'Tuvalu': 10200, 'Nauru': 11000, 'Palau': 17900,
                      'San Marino': 33420, 'Monaco': 38300, 'Marshall Islands': 55500}

for key in countryPop:
    print(key + " has Population " + str(countryPop[key]))

Вывод:

Население Палау 17900

Население Тувалу 10200

Население Ватикана 800

Население Сан-Марино 33420

Население Маршалловых островов 55500

Население Монако 38300

Население Науру: 11000

...