تهيئة المصفوفات في بايثون: قوائم الفهم وNumPy

1. أساسيات تهيئة المصفوفات (القوائم) في Python

قوائم Python (المصفوفات) هي هياكل بيانات مرنة يمكنها تخزين عناصر من أنواع بيانات مختلفة، وهي لبنة أساسية في برمجة Python. في هذه المقالة، سنشرح كيفية تهيئة المصفوفات (القوائم) في Python.

ما هي قائمة Python؟

قائمة هي هيكل بيانات يُستخدم لتجميع عناصر من أنواع بيانات متنوعة، مثل الأرقام والسلاسل، وتعمل كـ “مصفوفة” في Python. يمكنها احتواء عناصر من أنواع مختلفة، ويمكنك إضافة أو إزالة العناصر بحرية بعد التهيئة.

example_list = [1, "Hello", True]
print(example_list)
# Output: [1, "Hello", True]

تهيئة قائمة فارغة

لإنشاء قائمة فارغة، استخدم [] أو list(). هذه الطريقة مثالية عندما تخطط لإضافة عناصر لاحقًا أو تريد حجز متغير.

empty_list1 = []
empty_list2 = list()
print(empty_list1)  # Output: []
print(empty_list2)  # Output: []

تهيئة قائمة بعدد محدد من العناصر

في Python، يمكنك إنشاء قائمة بعدد محدد من العناصر بسهولة. على سبيل المثال، يمكنك إنشاء قائمة مهيأة بخمسة أصفار كالتالي.

initial_list = [0] * 5
print(initial_list)  
# Output: [0, 0, 0, 0, 0]

هذه الطريقة مفيدة لإنشاء قائمة مملوءة بقيمة موحدة.

تهيئة قائمة باستخدام دالة list

دالة list() مفيدة لتوليد قائمة من أنواع بيانات أخرى. على سبيل المثال، يمكنك تحويل سلسلة إلى قائمة أو تحويل tuple إلى قائمة.

char_list = list("Python")
tuple_list = list((1, 2, 3))
print(char_list)  
# Output: ['P', 'y', 't', 'h', 'o', 'n']
print(tuple_list)  
# Output: [1, 2, 3]

Ad

2. تهيئة قائمة باستخدام List Comprehension

فهم القوائم (List comprehensions) هي صيغة مفيدة تسمح لك بكتابة كود Python موجزًا وفعالًا. إنها مفيدة بشكل خاص لتهيئة القوائم بناءً على شروط.

فهم قائمة أساسي

المثال أدناه يهيئ قائمة تحتوي على الأعداد الصحيحة من 0 إلى 9 باستخدام فهم قائمة.

numbers = [i for i in range(10)]
print(numbers)  
# Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

فهم قائمة شرطي

يمكنك أيضًا إنشاء قائمة مع شروط. على سبيل المثال، يمكنك كتابة قائمة تستخرج فقط الأرقام الزوجية كما هو موضح أدناه.

even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers)  
# Output: [0, 2, 4, 6, 8]
Ad
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. تهيئة قائمة ثنائية الأبعاد

يمكن لقوائم Python تمثيل المصفوفات متعددة الأبعاد من خلال احتواء قوائم داخل قوائم. هذا يسمح لك بالعمل مع هياكل بيانات مثل الجداول أو المصفوفات.

كيفية تهيئة قائمة ثنائية الأبعاد

إليك مثالًا على تهيئة قائمة ثنائية الأبعاد 3 × 3 باستخدام فهم قائمة. هذا النهج يضمن أن كل قائمة فرعية مستقلة، مما يمنع التغييرات غير المقصودة من خلال الإشارات المشتركة.

matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)  
# Output: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

تحذير: مشكلات الإشارة عند تهيئة قائمة ثنائية الأبعاد

إذا كتبتها مثل [[0] * 3] * 3، فإن كل صف يشير إلى نفس الكائن، لذا فإن تغييرًا في مكان واحد سيعكس في الصفوف الأخرى. استخدام فهم قائمة يولد كل صف كقائمة مستقلة.

Ad

4. عمليات المصفوفة: إضافة العناصر والدمج

يمكن لقوائم Python إضافة أو إزالة العناصر ديناميكيًا ودمجها مع قوائم أخرى حتى بعد التهيئة. يشرح هذا القسم العمليات الأساسية.

إضافة العناصر: طريقة append

باستخدام append()، يمكنك إضافة عنصر إلى نهاية القائمة.

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  
# Output: [1, 2, 3, 4]

إدراج العناصر: طريقة insert

insert() تدخل عنصرًا في موضع محدد في القائمة. من خلال تحديد فهرس، يمكنك الإدراج في أي موقع.

my_list = [1, 2, 3]
my_list.insert(1, 'new')
print(my_list)  
# Output: [1, 'new', 2, 3]

دمج القوائم: عامل +

لدمج قوائم متعددة، استخدم عامل +.

list1 = [1, 2, 3]
list2 = [4, 5]
combined_list = list1 + list2
print(combined_list)  
# Output: [1, 2, 3, 4, 5]

Ad
年収訴求

5. طرق التهيئة الأخرى: وحدة array وNumPy

يتضمن بايثون وحدة array المتخصصة في الحوسبة العددية ومكتبة NumPy، مما يسمح بتهيئة المصفوفات باستخدام هياكل بيانات غير القوائم.

التهيئة باستخدام وحدة array

يمكن لوحدة array في بايثون تخزين مصفوفات من نفس نوع البيانات بكفاءة، مما يؤدي إلى استهلاك منخفض للذاكرة.

import array
int_array = array.array('i', [0] * 5)
print(int_array)  
# Output: array('i', [0, 0, 0, 0, 0])

تهيئة المصفوفات متعددة الأبعاد باستخدام NumPy

مع مكتبة NumPy، يمكنك التعامل بكفاءة مع مصفوفات متعددة الأبعاد كبيرة، وتُستخدم بشكل متكرر في الحوسبة العلمية وتحليل البيانات.

import numpy as np
numpy_array = np.zeros((3, 3))
print(numpy_array)
# Output:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]

مصفوفات NumPy ذات كفاءة حسابية عالية وتناسب معالجة البيانات على نطاق واسع بشكل أفضل مقارنة بالقوائم المدمجة في بايثون.

Ad

6. مقارنة طرق تهيئة المصفوفات في بايثون

في هذه المقالة، نشرح بشكل شامل كيفية تهيئة القوائم والمصفوفات في بايثون. من خلال فهم مزايا كل طريقة تهيئة واختيار الأنسب لحالتك، يمكنك كتابة كود أكثر كفاءة.

  • إنشاء قائمة فارغة : تهيئة بسيطة باستخدام [] و list() .
  • قوائم الفهم : إنشاء قائمة من العناصر بسهولة بناءً على الشروط.
  • القوائم متعددة الأبعاد : تمثل كقوائم داخل قوائم، مع اعتبارات هامة.
  • إضافة وربط العناصر : التلاعب بمرونة باستخدام الدوال append() و insert() وعامل + .
  • array وNumPy : هياكل بيانات مناسبة للأنواع العددية ومعالجة البيانات متعددة الأبعاد.

من خلال فهم خصائص كل طريقة ومكتبة واستخدامها في الوقت المناسب، يمكنك إتقان تهيئة القوائم في بايثون.

Ad
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール