есть ли способ написать оператор условия так, чтобы он печатал привет гризли - PullRequest
0 голосов
/ 02 мая 2020

Я хотел написать код, чтобы он печатал приветствие только дружественным медведям, и код должен работать, даже если в словарь добавлено больше медведей. код ниже

bears = {"Grizzly":"angry", "Brown":"friendly", "Polar":"friendly"}
for bear in bears: 
         if  bear == "friendly" :
                print("Hello,"+bear+"bear!")
         else:
                print("odd")

, и в результате получается

odd
odd
odd

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

Ответы [ 3 ]

0 голосов
/ 02 мая 2020

Вы можете получить доступ как к ключу, так и к значению каждой пары значений ключа в медведях dict с помощью метода items.

for bear, type_ in bears.items():
    if type_ == "friendly":
        print("Hello," + bear + "bear!")
    else:
        print("odd")

Вы можете узнать больше о распаковке кортежей (как вы присвойте значения bear и type_ в l oop) здесь .

Обновлено

Вы также можете получить желаемый результат без изменения переменной l oop путем получения значения для каждого медведя из словаря.

for bear in bears:
    if bears[bear] == "friendly":
        print("Hello," + bear + "bear!")
    else:
        print("odd")
0 голосов
/ 06 мая 2020
bears = {"Grizzly":"angry", "Brown":"friendly", "Polar":"friendly"}
for bear in bears: 
         if  bears[bear] == "friendly" :
                print("Hello,"+bear+"bear!")
         else:
                print("odd")

выше ответ, потому что несет [медведь] rep значение для каждого ключа в словаре несет

0 голосов
/ 02 мая 2020

Обновление

bears = {"Grizzly":"angry", "Brown":"friendly", "Polar":"friendly"}
for bear, personality in bears.items(): 
        if  personality == "friendly" :
            print("Hello,"+ bear +"bear!")
        else:
            print("odd")
...