Форум сайта python.su
текст задачи
Игра в города продолжается. Анфиса покопалась в сети и нашла дополнительный список городов для игры. Но у неё нет инструмента, чтобы добавить новые города в множество all_cities.
Напишите функцию add_cities(), которая добавит элементы из списка new_cities в all_cities.
Метод union() для этой задачи не подходит, ведь вам нужно добавить элементы в существующее множество, а не создать новое.
код задачи
def print_valid_cities(all_cities, used_cities):
diff = all_cities.difference(used_cities)
for city in diff:
print(city)
def add_cities(all_cities, new_cities):
# Напишите код функци
for city in new_cities:
add_cities=all_cities.add(city)
print(city)
# Анфиса нашла названия нескольких новых городов,
# эти города нужно добавить в множество all_cities
new_cities = [
'Екатеринбург',
'Выборг' ,
'Владивосток',
'Казань',
'Why',
'Йезд'
]
all_cities = {
'Абакан',
'Астрахань',
'Бобруйск',
'Калуга',
'Караганда',
'Кострома',
'Липецк',
'Новосибирск'
}
used_cities = {
'Калуга',
'Абакан' ,
'Новосибирск'
}
add_cities(all_cities, new_cities)
print_valid_cities(all_cities, used_cities)
...
pass
Отредактировано karinskiyyarik1 (Янв. 10, 2022 17:43:13)
Офлайн
Дописал функцию add_cities().
>>> def print_valid_cities(all_cities, used_cities): ... diff = all_cities.difference(used_cities) ... for city in diff: ... print(city) ... >>> def add_cities(all_cities, new_cities): ... for city in new_cities: ... all_cities.add(city) ... >>> >>> # Анфиса нашла названия нескольких новых городов, ... # эти города нужно добавить в множество all_cities ... new_cities = [ ... 'Екатеринбург', ... 'Выборг' , ... 'Владивосток', ... 'Казань', ... 'Why', ... 'Йезд' ... ] >>> >>> all_cities = { ... 'Абакан', ... 'Астрахань', ... 'Бобруйск', ... 'Калуга', ... 'Караганда', ... 'Кострома', ... 'Липецк', ... 'Новосибирск' ... } >>> >>> used_cities = { ... 'Калуга', ... 'Абакан' , ... 'Новосибирск' ... } >>> >>> add_cities(all_cities, new_cities) >>> print_valid_cities(all_cities, used_cities) Владивосток Караганда Казань Липецк Why Екатеринбург Выборг Астрахань Бобруйск Кострома Йезд >>>
karinskiyyarik1Города те же, порядок не сохраняется, так как множества сами по себе не упорядочены. В питоне есть иключение одно: словари стали упорядочены. Но словари в питоне это такие множества нагруженные, раньше они были неупорядоченными, какими и должны быть обычно (в разных языках они могут быть и упорядоченными не обязаны быть). Просто в питоне их, спустя какое-то время, упорядочили для удобства.
вот какой должен быть выводЕкатеринбург
Бобруйск
Казань
Владивосток
Караганда
Why
Липецк
Выборг
Йезд
Кострома
Астрахань
Отредактировано py.user.next (Янв. 10, 2022 23:09:56)
Офлайн
karinskiyyarik1Спасибо. Подскажи пожалуйста почему не надо было писать print во второй цикле def
def add_cities(all_cities, new_cities):
… for city in new_cities:
… all_cities.add(city)
…
Офлайн
karinskiyyarik1Потому что функция должна делать что-то одно. Если функция выводящая что-то на экран, то у неё есть в имени слово print и внутри неё можно выводить на экран. А если функция просто что-то куда-то добавляет, то там в имени нет print и поэтому и выводить она ничего не должна.
Подскажи пожалуйста почему не надо было писать print во второй цикле def
Отредактировано py.user.next (Фев. 13, 2023 22:08:47)
Офлайн