Объяснение к уроку
После этого урока ты сможешь:
.append()..get().Циклы могут создавать коллекцию, а не просто выводить ее значения. Начни с пустой целевой коллекции, затем добавляй значения по мере обработки источника. Для списка используй .append(), чтобы добавлять каждый выбранный результат с сохранением порядка появления.
Фильтрация использует условие внутри цикла: одни элементы источника добавляются, а другие пропускаются. Оставляй входную коллекцию неизменной, если эти данные могут понадобиться позже; изменение списка во время итерации по нему же может приводить к неожиданному пропуску элементов.
Словарь удобен для подсчетов и группировок. Выражение counts.get(key, 0) получает текущее количество или начинает с нуля. Для группировки инициализируй список при первом появлении категории, а затем добавляй в него элементы. Ты объединяешь методы из предыдущих уроков с функциями, условиями и циклами из Части 1.
raw_regions = [" EU ", "Us", " APAC "]
regions = []
for region in raw_regions:
regions.append(region.strip().lower())
print(regions)Вывод:
['eu', 'us', 'apac']Каждое очищенное значение добавляется в новый список.
scores = [31, 0, 18, -3]
valid_scores = []
for score in scores:
if score >= 0:
valid_scores.append(score)
print(valid_scores)Вывод:
[31, 0, 18]Исходный список остается нетронутым; только подходящие значения попадают в результат.
states = ["open", "closed", "open"]
counts = {}
for state in states:
counts[state] = counts.get(state, 0) + 1
print(counts["open"])Вывод:
2Резервное значение начинает подсчет для нового ключа с нуля.
requests = [("api", "urgent"), ("worker", "normal"), ("mail", "urgent")]
groups = {}
for service, category in requests:
if category not in groups:
groups[category] = []
groups[category].append(service)
print(groups["urgent"])Вывод:
['api', 'mail']Сгруппированный словарь объединяет ключ с упорядоченным списком совпадающих значений.
| Цель | Шаблон |
|---|---|
| Начать результирующий список | results = [] |
| Добавить следующее выбранное значение | results.append(value) |
| Отфильтровать значения | if condition: внутри цикла |
| Обновить счетчик | counts[key] = counts.get(key, 0) + 1 |
| Начать новую категорию | groups[key] = [] |
KeyError.