Чтобы стать сертифицированным программистом начального уровня Python (PCEP), требуется глубокое понимание фундаментальных структур данных в Python, таких как списки и кортежи.
И списки, и кортежи способны хранить объекты в Python, но эти две структуры данных имеют ключевые различия в их использовании и синтаксисе. Чтобы помочь вам успешно сдать сертификационный экзамен PCEP, вот несколько важных советов по освоению этих структур данных.
1. Поймите разницу между списками и кортежами
Списки в Python изменяемы, то есть их можно изменять после создания. С другой стороны, кортежи неизменяемы, то есть их нельзя изменить после создания. Это означает, что кортежи требуют меньше памяти и в определенных ситуациях могут работать быстрее, чем списки, но обеспечивают меньшую гибкость.
Пример списка:
# creating a list of numbers numbers = [1, 2, 3, 4, 5] # modifying the list by changing the fourth element numbers[3] = 10 print(numbers) # output: [1, 2, 3, 10, 5]
Пример кортежа:
# creating a tuple of colors colors = ("red", "green", "blue") # trying to modify the tuple by changing the second element colors[1] = "yellow" # this will result in an error as tuples are immutable
2. Ознакомьтесь с синтаксисом списков и кортежей
Списки обозначаются квадратными скобками [ ], а кортежи заключаются в круглые скобки ( ). Создать список или кортеж так же просто, как объявить значения переменной с использованием соответствующего синтаксиса. Помните, что кортежи нельзя изменить после инициализации, поэтому крайне важно использовать правильный синтаксис.
Пример списка:
# creating a list of fruits fruits = ["apple", "banana", "orange"]
Пример кортежа:
# creating a tuple of colors colors = ("red", "green", "blue")
3. Узнайте, как добавлять и удалять элементы
Списки имеют различные встроенные методы для добавления и удаления элементов, например,добавление(), расширение() и удаление(). С другой стороны, кортежи имеют меньше встроенных методов и не имеют методов для добавления или удаления элементов. Поэтому, если вам нужно изменить кортеж, вам придется создать новый вместо изменения существующего кортежа.
Пример списка:
# adding a new fruit to the end of the list fruits.append("mango") print(fruits) # output: ["apple", "banana", "orange", "mango"] # removing a fruit from the list fruits.remove("banana") print(fruits) # output: ["apple", "orange", "mango"]
Пример кортежа:
# trying to add a fruit to the end of the tuple fruits.append("mango") # this will result in an error as tuples are immutable # trying to remove a fruit from the tuple fruits.remove("banana") # this will also result in an error
4. Поймите разницу в производительности
Из-за своей неизменяемости кортежи обычно работают быстрее, чем списки. Обратите внимание на сценарии, в которых вам необходимо хранить фиксированную коллекцию элементов, и рассмотрите возможность использования кортежей вместо списков для повышения производительности.
Вы можете проверить разницу в производительности между списками и кортежами, используя модуль timeit в Python. Вот пример сравнения времени, необходимого для перебора списка и кортежа из 10 элементов:
# importing the timeit module import timeit # creating a list and a tuple with 10 elements numbers_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # testing the time it takes to iterate through the list list_time = timeit.timeit('for num in numbers_list: pass', globals=globals(), number=100000) print("Time taken for list: ", list_time) # output: Time taken for list: 0.01176179499915356 seconds # testing the time it takes to iterate through the tuple tuple_time = timeit.timeit('for num in numbers_tuple: pass', globals=globals(), number=100000) print("Time taken for tuple: ", tuple_time) # output: Time taken for tuple: 0.006707087000323646 seconds
Как видите, перебор кортежа происходит немного быстрее, чем перебор списка.
5. Понимание подходящих вариантов использования списков и кортежей
Списки подходят для хранения коллекций элементов, которые могут меняться со временем, поскольку их можно легко изменить. Напротив, кортежи идеально подходят для постоянных коллекций элементов, которые должны оставаться неизменными. Например, хотя список может подойти для списка покупок, который может меняться, кортеж больше подойдет для хранения дней недели, поскольку они остаются неизменными.
Пример списка:
# creating a list of groceries grocery_list = ["milk", "bread", "eggs", "chicken"] # adding a new item to the grocery list grocery_list.append("bananas")
Пример кортежа:
# creating a tuple of weekdays weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday") # trying to add a new day to the tuple weekdays.append("Saturday") # this will result in an error as tuples cannot be modified after creation
6. Помните об использовании памяти
Списки потребляют больше памяти, чем кортежи, из-за своей гибкости, а кортежи занимают меньше места из-за своей неизменяемости. Это особенно важно учитывать при работе с большими наборами данных или приложениями, интенсивно использующими память.
Вы можете использовать модуль sys в Python для проверки использования памяти переменными. Вот пример сравнения использования памяти списком и кортежем с одним миллионом элементов:
# importing the sys module import sys # creating a list with one million elements numbers_list = list(range(1000000)) # checking the memory usage of the list list_memory = sys.getsizeof(numbers_list) print("Memory usage for list: ", list_memory) # output: Memory usage for list: 9000112 bytes # creating a tuple with one million elements numbers_tuple = tuple(range(1000000)) # checking the memory usage of the tuple tuple_memory = sys.getsizeof(numbers_tuple) print("Memory usage for tuple: ", tuple_memory) # output: Memory usage for tuple: 4000072 bytes
Вы можете видеть, что кортежи потребляют меньше памяти по сравнению со списками.
7. Знайте, как перебирать списки и кортежи
И списки, и кортежи можно перебирать с помощью циклов, но из-за их неизменяемости кортежи могут работать немного быстрее. Также обратите внимание, что списки могут хранить данные любого типа, а кортежи могут содержать только хэшируемые элементы. Это означает, что кортежи можно использовать в качестве ключей словаря, а списки — нет.
Пример списка:
# creating a list of numbers numbers = [1, 2, 3, 4, 5] # iterating through the list and checking if a number is present for num in numbers: if num == 3: print("Number 3 is present in the list") # output: Number 3 is present in the list
Пример кортежа:
# creating a tuple of colors colors = ("red", "green", "blue") # iterating through the tuple and checking if a color is present for color in colors: if color == "yellow": print("Yellow is one of the colors in the tuple") # this will not print anything as yellow is not present in the tuple
8. Ознакомьтесь со встроенными функциями и операциями
Хотя списки имеют больше встроенных методов по сравнению с кортежами, обе структуры данных имеют ряд встроенных функций и операторов, с которыми вам следует ознакомиться для экзамена PCEP. К ним относятся такие функции, как len(), max() и min(), а также операторы in и not in для проверки того, находится ли элемент в списке или кортеже.
Пример списка:
# creating a list of even numbers numbers = [2, 4, 6, 8, 10] # using the len() function to get the length of the list print("Length of the list: ", len(numbers)) # output: Length of the list: 5 # using the in and not in operators to check if a number is present in the list print(12 in numbers) # output: False print(5 not in numbers) # output: True
Пример кортежа:
# creating a tuple of colors colors = ("red", "green", "blue") # using the max() function to get the maximum element in the tuple print("Maximum color: ", max(colors)) # output: Maximum color: red # using the in and not in operators to check if a color is present in the tuple print("yellow" in colors) # output: False print("green" not in colors) # output: False
Понимая различия, подходящие варианты использования и синтаксис списков и кортежей, вы будете хорошо подготовлены к экзамену PCEP. Не забудьте попрактиковаться в использовании этих структур данных в различных сценариях, чтобы закрепить свои знания и повысить шансы на сдачу экзамена. Имейте в виду, что с практикой приходит совершенство!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3