Учитывая словарь, nested_d, сохраните счет медалей для США из всех трех Олимпийских игр в словаре в список US_count

nested_d = {'Beijing':{'China':51, 'USA':36, 'Russia':22, 'Great Britain':19}, 'London':{'USA':46, 'China':38, 'Great Britain':29, 'Russia':22}, 'Rio':{'USA':35, 'Great Britain':22, 'China':20, 'Germany':13}}
US_count = []

for nested in nested_d:
    # print(nested)
    for country in nested_d[nested]:
            if "USA" in country:
                    US_count.append(country)

print(US_count)

Я ожидаю вывод [35,36,46], но фактический вывод: ['USA', 'USA', 'USA'] пожалуйста, помогите мне решить эту проблему

0
Subrata 10 Июл 2019 в 08:45

6 ответов

Лучший ответ

Вы также можете попробовать это:

nested_d = {'Beijing':{'China':51, 'USA':36, 'Russia':22, 'Great Britain':19}, 'London':{'USA':46, 'China':38, 'Great Britain':29, 'Russia':22}, 'Rio':{'USA':35, 'Great Britain':22, 'China':20, 'Germany':13}}
US_count = []

for nested in nested_d:
    for country in nested_d[nested]:
            if country=="USA":
                    US_count.append(nested_d[nested][country])

print(US_count)

Выход:

[35, 36, 46]
0
Anubhav Singh 10 Июл 2019 в 05:53
nested_d = {'Beijing':{'China':51, 'USA':36, 'Russia':22, 'Great Britain':19}, 'London':{'USA':46, 'China':38, 'Great Britain':29, 'Russia':22}, 'Rio':{'USA':35, 'Great Britain':22, 'China':20, 'Germany':13}}

res = [nested_d[host]['USA'] for host in nested_d]

print(res)

Выход

[36, 46, 35]
2
sahasrara62 10 Июл 2019 в 05:55

Заменить цикл на:

for nested in nested_d:
    for country, value in nested_d[nested].items():
        if 'USA' in country:
            US_count.append(value)

print(US_count)

Выход:

[36, 46, 35]
0
U10-Forward 10 Июл 2019 в 05:48

Вы можете попробовать это: -

nested_d = {'Beijing':{'China':51, 'USA':36, 'Russia':22, 'Great Britain':19}, 'London':{'USA':46, 'China':38, 'Great Britain':29, 'Russia':22}, 'Rio':{'USA':35, 'Great Britain':22, 'China':20, 'Germany':13}}

US_count = []



for nested in nested_d:
    for country,medal in nested_d[nested].items() :
        if country == 'USA':
            US_count.append(medal)

print(US_count)

< Сильный > Выход

[36, 46, 35]

< Сильный > ИЛИ Вы можете попробовать это: -

us_count = []

for key, value in nested_d.items():  #Here we getting dictionary in value.
    if 'USA' in value.keys():
        us_count.append(value['USA'])

print(us_count)

Я надеюсь, что это может помочь вам

0
Rahul charan 11 Июл 2019 в 04:16
You just need to iterate through the nested dict and get the value of key USA.

nested_d = {
            'Beijing':{
                'China':51,
                'USA':36,
                'Russia':22,
                'Great Britain':19
            },
            'London':{
                    'USA':46,
                    'China':38,
                    'Great Britain':29,
                    'Russia':22
            },
            'Rio':{
                'USA':35,
                'Great Britain':22,
                'China':20,
                'Germany':13
            }
}

us_medals_count = []

for key, value in nested_d.items():
    if 'USA' in value.keys():
        us_medals_count.append(value['USA'])

print(us_medals_count)
0
kuldeep rawani 12 Июл 2019 в 15:59

Вы должны добавить nested_d[nested][country], чтобы получить значения.

2
Siyana Pavlova 10 Июл 2019 в 05:53