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