php中文网

PCEP 认证准备的 Python 元组和列表提示

php中文网

立志成为 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。了解如何添加和删除项目
列表有各种用于添加和删除项目的内置方法,例如append()、extend() 和remove()。另一方面,元组的内置方法较少,并且没有任何添加或删除项目的方法。因此,如果您需要修改元组,则必须创建一个新元组,而不是更改现有元组。

列表示例:

# 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。了解性能差异
由于其不变性,元组通常比列表更快。留意需要存储固定项目集合的场景,并考虑使用元组而不是列表来提高性能。

您可以使用python中的timeit模块测试列表和元组之间的性能差异。下面是一个比较迭代列表和包含 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。注意内存使用
由于其灵活性,列表比元组消耗更多的内存,而元组由于其不变性而占用更少的空间。在处理大型数据集或内存密集型应用程序时,这一点尤其重要。

可以使用python中的sys模块来检查变量的内存使用情况。以下是比较列表和具有一百万个元素的元组的内存使用情况的示例:

# 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

您可以看到,与列表相比,元组消耗的内存更少。

立即学习“Python免费学习笔记(深入)”;

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 考试做好充分准备。请记住在不同场景中练习使用这些数据结构,以巩固您的知识并增加通过考试的机会。请记住,熟能生巧!

以上就是PCEP 认证准备的 Python 元组和列表提示的详细内容,更多请关注php中文网其它相关文章!