Эта статья взята из « Руководства по навыкам работы с циклами в Python » сообщества Huawei Cloud Community, написанного Лемони Хугом.
Когда мы обрабатываем данные, иногда нам необходимо создать несколько списков для хранения данных разных типов или условий. В Python мы можем использовать циклы для быстрого и эффективного создания этих списков. В этой статье объясняется, как использовать циклы для создания нескольких списков в Python, и приводятся примеры кода.
Python использует цикл для создания нескольких списков
В Python мы можем создавать несколько списков, используя списки или циклы в сочетании с условными операторами. Вот некоторые распространенные сценарии и соответствующие примеры кода:
1. Создайте фиксированное количество пустых списков.
Предположим, нам нужно создать несколько пустых списков, мы можем использовать списки и циклы:
# Создание нескольких пустых списков с использованием списков число_списков = 5 пустые_списки = [[] для _ в диапазоне (num_lists)] печать (пустые_списки)
Это создаст список из 5 пустых списков.
2. Создайте несколько списков на основе условий.
Иногда нам нужно создавать разные списки в зависимости от конкретных условий. Например, мы хотим хранить нечетные и четные числа в двух списках:
#Создаем нечетные и четные списки числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] нечетные_числа = [] четные_числа = [] для числа в числах: если число % 2 == 0: Even_numbers.append(число) еще: нечетные_числа.append(число) print("Список нечетных чисел:", нечетные числа) print("Список четных чисел:",even_numbers)
Это создаст два списка на основе четности чисел.
3. Создайте несколько списков в зависимости от длины строки.
Иногда нам нужно классифицировать и хранить строки в разных списках в зависимости от их длины:
#Создаем несколько списков в зависимости от длины строки words = ["яблоко", "банан", "апельсин", "груша", "виноград", "киви"] короткие_слова = [] средние_слова = [] длинные_слова = [] за слово словами: если len(слово) < 5: short_words.append(слово) элиф лен(слово) <7: medium_words.append(слово) еще: long_words.append(слово) print("Краткий список слов:", short_words) print("Список слов средней длины:", medium_words) print("Список длинных слов:", long_words)
Это сохранит слова в трех разных списках в зависимости от длины строки.
4. Создайте несколько списков в зависимости от типа данных.
Иногда нам необходимо хранить данные в разных списках в зависимости от их типа. Например, мы хотим хранить целые числа, числа с плавающей запятой и строки в отдельных списках:
#Создаем несколько списков на основе типа данных данные = [1, 2,5, «яблоко», 4, «банан», 6,7, «апельсин», 8, 9, «груша»] целые числа = [] плавает = [] строки = [] для элемента в данных: если isinstance(пункт, int): целые числа.append(элемент) elif isinstance(item, float): float.append(элемент) elif isinstance(item, str): strings.append(элемент) print("Список целых чисел:", целые числа) print("Список чисел с плавающей запятой:", floats) print("Список строк:", strings)
При этом данные будут храниться в трех разных списках в зависимости от их типа.
5. Динамическое создание нескольких списков в зависимости от условий
Иногда нам нужно создать несколько списков на основе динамически меняющихся условий. Например, мы хотим создать список соответствующих количеств на основе количества, введенного пользователем:
# Динамически создавать несколько списков на основе пользовательского ввода num_lists = int(input("Пожалуйста, введите количество списков, которые необходимо создать: ")) списки = [[] для _ в диапазоне (num_lists)] print("создано", num_lists, "пустые списки:", списки)
Это приведет к динамическому созданию соответствующего количества пустых списков в зависимости от числа, введенного пользователем.
6. Создайте несколько списков, содержащих определенные диапазоны чисел.
Иногда нам нужно создать несколько списков на основе определенного диапазона чисел. Например, мы хотим хранить числа от 0 до 9 в десяти списках, основанных на однозначных цифрах:
# Создание нескольких списков, содержащих определенный диапазон чисел число_списков = 10 range_lists = [[] для _ в диапазоне (num_lists)] для числа в диапазоне (10): range_lists[num % num_lists].append(num) print("Список хранится в однозначных числах:") для i, lst в перечислении (range_lists): print(f"List{i}:", lst)
При этом числа от 0 до 9 будут храниться в десяти отдельных списках, отсортированных по одиночным цифрам.
7. Создайте несколько списков на основе хеш-значений ключей.
Иногда нам нужно хранить данные, сгруппированные в несколько списков на основе хеш-значения ключа. Например, у нас есть набор пар ключ-значение, и мы хотим хранить их в разных списках на основе хеша ключей:
# Создание нескольких списков на основе хеш-значения ключа data = {"яблоко": 3, "банан": 5, "апельсин": 2, "груша": 4, "виноград": 6} num_lists = 3 hash_lists = [[] для _ в диапазоне (num_lists)] для ключа значение в data.items(): hash_index = хэш (ключ) % num_lists hash_lists[hash_index].append((ключ, значение)) print("Список сохраняется в соответствии с хеш-значением ключа:") для меня, lst в перечислении (hash_lists): print(f"List{i}:", lst)
Это сохранит пары ключ-значение в трех разных списках на основе хеша ключа.
8. Создайте несколько списков на основе атрибутов элементов в списке.
Иногда нам необходимо создать несколько списков на основе значений атрибутов элементов в списке. Например, предположим, что у нас есть набор объектов учащихся, и мы хотим сохранить их в двух списках: «Зачет» и «Не зачет», в зависимости от их оценок:
#Создайте несколько списков на основе оценок объектов учащихся Ученик класса: def __init__(я, имя, оценка): self.name = имя self.score = оценка студенты = [ Студент("Алиса", 85 лет), Студент("Боб", 60 лет), Студент («Чарли», 75 лет), Студент("Дэвид", 40 лет), Студентка("Эмма", 95) ] проходящие_студенты = [] неудачные_студенты = [] для студента в студентах: если Student.score >= 60: pass_students.append(студент) еще: failing_students.append(студент) print("Список проходящих студентов:") для проходного студента_студентов: print(f"{student.name}: {student.score}") print("\nСписок неуспешных учеников:") для студента в Failing_students: print(f"{student.name}: {student.score}")
При этом учащиеся будут храниться в двух списках: «Зачет» и «Не зачет», в зависимости от их оценок.
9. Создайте несколько списков на основе диапазонов индексов.
Иногда нам нужно разделить список на несколько подсписков в зависимости от диапазона индекса. Например, у нас есть список, содержащий набор чисел, и мы хотим разбить его на несколько более мелких подсписков:
#Создаем несколько списков на основе диапазонов индексов числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] num_lists = 3 разделенные_списки = [] для меня в диапазоне (num_lists): start_index = i * len(numbers) // число_списков end_index = (i + 1) * len(numbers) // число_списков Split_lists.append(числа[start_index:end_index]) print("Разделить список:") для i, lst в перечислении (split_lists): print(f"Список{i + 1}:", lst)
Это разделит исходный список на три подсписка в зависимости от диапазона индекса.
10. Создайте несколько списков, группируя их по значениям элементов списка.
Иногда нам нужно группировать элементы списка по их значениям и хранить их в разных списках. Например, предположим, что у нас есть набор целых чисел, и мы хотим сохранить их в двух списках в зависимости от их четности:
#Создаем несколько списков путем группировки на основе значений элементов списка числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] нечетные_числа = [] четные_числа = [] для числа в числах: если число % 2 == 0: Even_numbers.append(число) еще: нечетные_числа.append(число) print("Список нечетных чисел:", нечетные числа) print("Список четных чисел:",even_numbers)
Это сохранит элементы списка в нечетных и четных списках соответственно в зависимости от их четности.
11. Создайте несколько списков в зависимости от того, соответствуют ли элементы условиям.
Иногда нам нужно хранить элементы в разных списках в зависимости от того, соответствуют ли они определенным условиям. Например, предположим, что у нас есть набор чисел, и мы хотим хранить числа больше или равные 5 и числа меньше 5 в двух списках:
#Создаем несколько списков в зависимости от того, соответствуют ли элементы условиям числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] больше_чем_5 = [] меньше_чем_5 = [] для числа в числах: если число >= 5: больше_чем_5.append(число) еще: less_than_5.append(число) print("Список чисел больше или равных 5:", more_than_5) print("Список чисел меньше 5:", less_than_5)
Это позволит сохранить число в двух разных списках в зависимости от того, больше оно или равно 5.
Подведем итог
В целом, в этой статье были представлены различные способы создания нескольких списков с использованием циклов в Python, а также продемонстрированы и объяснены их на конкретных примерах кода. Начиная с разных точек зрения, таких как фиксированные количества, условия, типы данных, атрибуты, диапазоны индексов, хеш-значения и т. д., мы исследовали, как гибко использовать циклы в сочетании с пониманием списков или условными операторами для создания нескольких списков. Эти методы не только повышают гибкость и удобство сопровождения кода, но также ускоряют процесс разработки и повышают производительность программы.
Изучая эту статью, читатели смогут освоить навыки обработки данных на Python и их организации в несколько списков, чтобы более эффективно работать с данными и управлять ими. В то же время гибкое использование таких функций Python, как циклы и понимание списков, может сделать код более кратким, понятным и элегантным. В реальных проектах выбор подходящего метода создания нескольких списков в соответствии с конкретными потребностями станет важным навыком программирования и поможет улучшить качество и эффективность кода.
Нажмите, чтобы подписаться и узнать о новых технологиях Huawei Cloud как можно скорее~
Я решил отказаться от промышленного программного обеспечения с открытым исходным кодом. Основные события: был выпущен OGG 1.0, компания Huawei предоставила весь исходный код. Был официально выпущен Ubuntu 24.04. Команда Google Python Foundation была уволена из-за «горы кодового дерьма» . Официально выпущена Fedora Linux 40. Известная игровая компания выпустила Новые правила: свадебные подарки сотрудников не должны превышать 100 000 юаней. China Unicom выпускает первую в мире китайскую версию модели с открытым исходным кодом Llama3 8B. Pinduoduo приговорен к выплате компенсации 5 миллионов юаней за недобросовестную конкуренцию. Метод ввода данных в облако — только у Huawei нет проблем с безопасностью загрузки данных в облако.