Форум сайта python.su
0
Добрый вечер.
d = {} for _ in range(int(input("Введите количество стран: "))): country = input("Введите страну: ") city = input("Введите город для этой страны: ").split() d.fromkeys(city, country) print(d)
Офлайн
0
d = {} for _ in range(int(input("Введите количество стран: "))): country = input("Введите страну: ") city = input("Введите город для этой страны: ").split() for a in city: d.setdefault(a, country) print(d)
Офлайн
568
DorumМожно, если понимать, как она работает. Для этого достаточно прочитать справку
Выходит функцию fromkeys нельзя использовать в качестве заполнителя словаря?
dict.fromkeysНу и где у вас последовательность? Последовательность - это список, итератор, генератор или что-то что можно перебрать. Это работает вот так
Добавлено в 2.3
Возвращает новый словарь, сформированный из указанной последовательности, с указанным значением элементов.
Прототип
fromkeys(seq)
Параметры
seq : Любая последовательность, например список list.
d = dict.fromkeys([1, 2, 3, 4, 5, 6], False)
Офлайн
0
FishHookКак же? Я использую city в качестве последовательности.
Ну и где у вас последовательность?
d = {} for _ in range(int(input("Введите количество стран: "))): country = input("Введите страну: ") city = input("Введите город для этой страны: ").split() d.fromkeys(city, country) print(d)
Офлайн
568
Ну так блин же!
fromkeys не меняет содержимое словаря, этот метод возвращает новый словарь, то есть ваша пятая строка d.fromkeys(city, country) вообще ничего полезного не делает. Она возвращает значение, которое вы не используете.
Офлайн
294
вы неправильно fromkeys используете.
замените d.fromkeys(city, country) на d.update(dict.fromkeys(city, country)) и будет вам счатье.
Выше уже написали почему так. fromkeys не меняет текущий словарь.
Ах да , и подумайте что вы получите если город будет называться “Нижний Новгород” например 
[code python][/code]
Отредактировано PEHDOM (Дек. 12, 2016 17:25:51)
Офлайн
568
Обычно, когда нужно такое поведение используют defaultdict
Офлайн
0
FishHook
PEHDOMУловил. Спасибо!
Офлайн