>백엔드 개발 >파이썬 튜토리얼 >PCEP 인증 준비를 위한 Python 튜플 및 목록 팁

PCEP 인증 준비를 위한 Python 튜플 및 목록 팁

DDD
DDD원래의
2024-09-29 06:12:02946검색

Python Tuples and Lists Tips for PCEP Certification Preparation

Python 認定エントリーレベル プログラマー (PCEP) を目指すには、リストやタプルなど、Python の基本的なデータ構造を完全に理解する必要があります。

リストとタプルはどちらも Python でオブジェクトを保存できますが、これら 2 つのデータ構造には使用法と構文に大きな違いがあります。 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 モジュールを使用して、変数のメモリ使用量を確認できます。以下は、リストと 100 万個の要素を持つタプルのメモリ使用量を比較する例です:

# 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 試験の準備が整います。知識を確実にし、試験に合格する可能性を高めるために、さまざまなシナリオでこれらのデータ構造を使用する練習を忘れないでください。練習すれば完璧になるということを覚えておいてください!

위 내용은 PCEP 인증 준비를 위한 Python 튜플 및 목록 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.