تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
إذا كنت أحد مطوري Python ، فمن المحتمل أنك سمعت عن deque أو "قائمة انتظار مزدوجة النهاية". إنها أداة قوية يمكنها زيادة كفاءة تطبيقك وتسريع أدائه.
Deque هو نوع بيانات حاوية متخصص يوفر عمليات إلحاق وفرقعة أسرع من طرفي الحاوية. هذا يجعلها أداة قيمة لتنفيذ قوائم الانتظار والمكدسات ، وهي أنواع بيانات شبيهة بالقوائم في الحوسبة.
إنها بنية بيانات منخفضة المستوى ومحسّنة للغاية وهي مفيدة جدًا لمجموعة متنوعة من التطبيقات. بصفتك مبرمجًا بلغة Python ، فإن deque هي إحدى الأدوات التي سترغب في امتلاكها في ترسانتك.
استمر في القراءة لمعرفة المزيد عن Deques وكيف يمكنك تنفيذها في كود Python الخاص بك !
جدول المحتويات
ما هو Deque؟
إذا كنت جديدًا على Python أو برمجة الكمبيوتر بشكل عام ، فقد تتساءل عن ماهية deque. يرمز Deque إلى " قائمة انتظار مزدوجة النهاية " ، وهي بنية بيانات تسمح لك بإضافة عناصر وإزالتها من طرفي قائمة الانتظار.
إنه مشابه لقائمة الانتظار العادية ولكن مع مرونة إضافية تتمثل في القدرة على إضافة عناصر وإزالتها من كل من الجزء الأمامي والخلفي لقائمة الانتظار. هذا ممكن لأن deque في Python يتم تنفيذه كقائمة مرتبطة بشكل مضاعف.
في Python ، يتم تنفيذ deque باستخدام وحدة المجموعات ، والتي توفر فئة deque. توفر هذه الفئة عددًا من الطرق لإضافة العناصر وإزالتها من deque.
كما أنه يوفر وظائف لعمليات مفيدة أخرى مثل تدوير deque أو مسحها بالكامل.
ميزات A Python Deque
على عكس القائمة العادية ، التي تحتوي على تعقيد زمني O (n) لعمليات الإلحاق والانبثاق ، يوفر deque تعقيدًا زمنيًا O (1). هذا يجعله أسرع بشكل ملحوظ وذاكرة فعالة لعمليات القراءة والكتابة هذه.
فيما يلي بعض ميزات Python deque التي يجب أن تعرفها:
إنها بنية بيانات قابلة للتغيير.
يمكنه تخزين أنواع بيانات متعددة ، على سبيل المثال ، الأعداد الصحيحة ، المجموعات ، المصفوفات ، إلخ.
وهو يدعم عمليات الفهرسة ، ولكن ليس التقطيع.
لا يدعم الفرز في المكان
وهو يدعم الوظائف والعمليات القابلة للتكرار الشائعة مثل in ، و Sorted () ، و len () ، و reverse () ، وما إلى ذلك.
تطبيقات A Deque
Deques مفيدة لمجموعة متنوعة من الأسباب. على سبيل المثال ، يمكن استخدامها لتنفيذ قائمة انتظار أو مكدس ، وكلاهما هياكل بيانات شائعة في علوم الكمبيوتر.
يمكن استخدامها أيضًا لمعالجة البيانات بكفاءة في الوقت الفعلي ، كما هو الحال في تطبيقات التدفق أو في الأنظمة التي تتطلب وصولاً سريعًا إلى البيانات.
بالإضافة إلى استخدامها لقوائم الانتظار والمداخن ، يمكن أيضًا استخدام deques لتنفيذ خوارزميات البحث ذات العرض الأول. وهي مفيدة أيضًا في الحفاظ على نافذة منزلقة للعناصر بتسلسل أكبر.
كيفية إنشاء وتهيئة Deque
يمكنك إنشاء deque باستخدام وظيفة مضمنة من وحدة المجموعات. دعنا نلقي نظرة فاحصة على كيفية إنشاء وملء بنية البيانات هذه.
استخدام وظيفة deque ()
لإنشاء deque في Python ، يمكنك استخدام وظيفة deque () المضمنة من وحدة المجموعات. تقوم هذه الدالة بإرجاع كائن deque فارغ جديد يمكنك استخدامه لتنفيذ قائمة انتظار مزدوجة النهاية.
فيما يلي مثال على كيفية إنشاء كائن deque فارغ:
from collections import deque
my_deque = deque()
يمكنك أيضًا إنشاء deque بالعناصر الأولية عن طريق تمرير متكرر (list ، tuple ، إلخ) إلى الدالة deque () . سيتم تهيئة deque بالعناصر الموجودة في التكرار ، من اليسار إلى اليمين.
هنا مثال:
from collections import deque
my_list = [1, 2, 3, 4, 5]
my_deque = deque(my_list)
تهيئة Deque بالعناصر
يمكنك أيضًا تهيئة deque فارغ بالعناصر باستخدام طرق مختلفة. تتمثل إحدى طرق القيام بذلك في استخدام التابعين append () و appendleft () لإضافة عناصر إلى deque من الجانبين الأيمن والأيسر ، على التوالي.
هنا مثال:
from collections import deque
#Initialize the empty deque
my_deque = deque()
print(my_deque)
#Add Values to the deque
my_deque.append(1)
my_deque.append(2)
my_deque.appendleft(3)
print(my_deque)
بعد تشغيل هذا الكود ، سيحتوي deque على العناصر [3 ، 1 ، 2].
هناك طريقة أخرى لتهيئة deque بالعناصر وهي تمرير قائمة بالعناصر إلى الدالة deque () .
هنا مثال:
from collections import deque
my_deque = deque([1, 2, 3])
سيؤدي تشغيل هذا الرمز إلى إنشاء كائن deque يحتوي على العناصر [1 ، 2 ، 3] .
بشكل عام ، يعد إنشاء deque وتهيئته في Python أمرًا سهلاً ويمكن تنفيذه باستخدام وظيفة deque () المضمنة . يمكنك أيضًا القيام بذلك عن طريق إضافة عناصر إلى deque فارغ باستخدام التابعين append () و appendleft () .
كيفية إجراء عمليات Deque المشتركة
هناك العديد من العمليات التي يمكنك إجراؤها على كائنات deque في Python. دعنا نتحقق من بعض أكثرها شعبية.
إضافة العناصر إلى Deque
يمكنك إضافة عناصر إلى ملف Python deque باستخدام التابعين append () و appendleft () . تضيف طريقة append () عنصرًا إلى الطرف الأيمن من deque بينما تضيف طريقة appendleft () عنصرًا إلى الطرف الأيسر من deque.
هذا مثال:
import collections
# Create an empty deque
my_deque = collections.deque()
# Add elements to the deque
my_deque.append(1)
my_deque.appendleft(2)
my_deque.append(3)
print(my_deque)
# Output:
deque([2, 1, 3])
إضافة عناصر بيانات متعددة إلى Deque
إذا كنت لا ترغب في إضافة عناصر البيانات إلى deque واحدًا تلو الآخر ، فيمكنك تسريع العملية باستخدام وظائف extension () أو extensionleft () . تأخذ هذه الوظائف عنصرًا متكررًا وتُلحق محتوى القابل للتكرار بنهاية deque أو نهايته اليسرى على التوالي.
هذا مثال:
from collections import deque
my_list = [1, 2, 3, 4, 5]
my_deque = deque(my_list)
#Creating a tuple and list
cont = (11, 12, 13, 14)
full = [10,20,30]
#Extending the deque from the right
my_deque.extend(cont)
print(my_deque)
#Extending the deque from the left
my_deque.extendleft(full)
print(my_deque)
في الكود أعلاه ، تُلحق الدالة extension () القيم المتعددة في المجموعة المتتابعة بنهاية deque. بعد ذلك ، تُلحق الدالة extensionleft () عناصر البيانات المتعددة في القائمة الكاملة بالطرف الأيسر من deque.
إزالة العناصر من Deque
يمكنك إزالة العناصر من ملف Python deque باستخدام طريقتين pop () و popleft () . تقوم طريقة pop () بإزالة وإرجاع العنصر الموجود في أقصى اليمين من deque بينما تقوم طريقة popleft () بإزالة العنصر الموجود في أقصى اليسار وإرجاعه.
هذا مثال:
import collections
#Create a deque with some elements
my_deque = collections.deque([1, 2, 3, 4, 5])
#Remove elements from the deque
my_deque.pop()
my_deque.popleft()
print(my_deque)
# Output: deque([2, 3, 4])
يمكنك أيضًا إزالة قيمة محددة من deque باستخدام وظيفة remove () . تقوم الوظيفة بإزالة التواجد الأول للقيمة المحددة من deque.
هذا مثال:
import collections
#Create a deque with some elements
my_deque = collections.deque([1, 2, 1, 4, 5])
#Remove elements from the deque
my_deque.remove(1)
print(my_deque)
# Output: deque([2, 1, 4, 5])
إذا لم يتم العثور على العنصر ، فستُرجع Python خطأ ValueError .
إزالة جميع العناصر من Deque
لإزالة جميع العناصر من Deque وإعادتها إلى حالة فارغة ، يمكننا استخدام الوظيفة clear () . وإليك كيف يعمل:
from collections import deque
#Create a deque with some elements
my_deque = deque([1, 2, 1, 4, 5])
#Remove all elements from the deque
my_deque.clear()
print(my_deque)
# Output:
deque([])
الوصول إلى عناصر Deque
يمكنك الوصول إلى عناصر deque بايثون باستخدام عامل الفهرسة [] . يمكنك أيضًا استخدام قيمة سالبة في عامل الفهرسة للوصول إلى عناصر deque من اليمين.
تبدأ الفهرسة من 0 للعنصر الموجود في أقصى اليسار و -1 للعنصر الموجود في أقصى اليمين. هذا مثال:
import collections
# Create a deque with some elements
my_deque = collections.deque([1, 2, 3, 4, 5])
# Access elements of the deque
print(my_deque[0])
# Output: 1
print(my_deque[-1])
# Output: 5
تعديل عناصر Deque
يمكنك تعديل عناصر deque بايثون باستخدام عامل الفهرسة " [] " وعامل التخصيص " = ". هذا مثال:
from collections import deque
# Create a deque with some elements
my_deque = deque([1, 2, 3, 4, 5])
print(my_deque)
# Modify elements of the deque
my_deque[0] = 10
my_deque[-1] = 50
print(my_deque)
في الكود أعلاه ، يقوم عامل الفهرسة بتغيير العنصرين الأول والأخير من deque إلى 10 و 50 على التوالي.
هذه هي العمليات الأساسية التي يمكنك إجراؤها على كائن deque في Python. باستخدام هذه العمليات ، يمكنك تنفيذ هياكل البيانات المختلفة بكفاءة مثل قوائم الانتظار والمكدسات والمزيد.
كيفية العمل مع Deque كقائمة انتظار
يمكنك استخدام deque في Python لتنفيذ بنية بيانات قائمة انتظار. قائمة الانتظار هي نوع بيانات مجردة يعمل على أساس ما يرد أولاً يصرف أولاً (FIFO) .
ما يعنيه هذا هو أنه يمكنك إلحاق عناصر جديدة من أحد طرفي قائمة الانتظار ودفع العناصر القديمة من الطرف الآخر.
طريقة جيدة لشرح هذا هو خط في متجر. عادة ، سيكون أول شخص يصل على رأس الخط وسيتم التعامل معه أولاً.
سيتعين على الوافدين الجدد التوجه إلى الجزء الخلفي من الصف وانتظار دورهم. لذلك ، سيكون أول من يتم إجابته هو أول إجابة ، بينما سيكون آخر إجابة هو الأخير الذي تمت إجابته.
إليك كيفية استخدام deque لتنفيذ قوائم الانتظار.
استخدام طريقتي append () و popleft ()
لاستخدام deque كقائمة انتظار ، يمكنك استخدام طريقة append () لإضافة عناصر إلى الطرف الأيمن من deque. بالإضافة إلى ذلك ، يمكنك استخدام طريقة popleft () لإزالة العناصر من الطرف الأيسر من deque.
هذه طريقة فعالة جدًا لتنفيذ قائمة انتظار في Python. هنا مثال:
from collections import deque
queue = deque()
queue.append(1)
queue.append(2)
queue.append(3)
print(queue)
# Output: deque([1, 2, 3])
x = queue.popleft()
print(x)
# Output: 1
print(queue)
# Output: deque([2, 3])
كما ترى ، تضيف طريقة append () عناصر إلى الطرف الأيمن من deque ، وتزيل طريقة popleft () العناصر من الطرف الأيسر من deque.
هذا هو بالضبط ما نحتاجه في تنفيذ قائمة الانتظار.
التحقق مما إذا كانت Deque Queue فارغة
للتحقق مما إذا كانت deque فارغة ، يمكنك استخدام عامل التشغيل not . هنا مثال:
from collections import deque
queue = deque()
if not queue:
print("Queue is empty")
else:
print("Queue is not empty")
سيؤدي هذا إلى إخراج " قائمة الانتظار فارغة " لأن deque فارغ. إذا قمت بإضافة عناصر إلى deque ، فلن تكون فارغة بعد الآن.
في الختام ، فإن استخدام deque كقائمة انتظار في Python فعال للغاية وسهل التنفيذ.
العمل مع Deque كمكدس
تمامًا مثل قوائم الانتظار ، تعد المكدسات مثالًا آخر على أنواع البيانات المجردة التي يمكنك استخدامها في تنظيم البيانات. على عكس قوائم الانتظار ، تعمل المداخن بطريقة ما يرد أخيرًا يصرف أولاً (LIFO).
هذا يعني أن العنصر الأخير في deque سيكون أول عنصر يخرج. إليك كيفية تنفيذ ذلك باستخدام بنية البيانات الأساسية.
استخدام طريقتي append () و pop ()
عند استخدام Deque كمكدس ، يمكنك إضافة عناصر إلى أعلى المكدس باستخدام طريقة append () . تضيف هذه الطريقة العنصر إلى الطرف الأيمن من deque.
وبالمثل ، يمكنك إزالة العناصر من أعلى المكدس باستخدام طريقة pop () . تقوم هذه الطريقة بإزالة العنصر الموجود في أقصى اليمين وإرجاعه.
على سبيل المثال ، لنفترض أن لديك deque يسمى “ my_stack ” وتريد إضافة عنصر إلى أعلى المكدس. يمكنك استخدام الكود التالي:
my_stack.append(5)
سيؤدي هذا إلى إضافة العنصر 5 إلى أعلى المكدس.
إذا كنت تريد إزالة العنصر العلوي من المكدس ، يمكنك استخدام طريقة pop (): `
bal = my_stack.pop()
print(bal)
# Output: 5
سيؤدي هذا إلى إزالة العنصر الموجود في أقصى اليمين وإعادته ، والذي يكون في هذه الحالة 5.
التحقق من وجود كائن Deque فارغ
يمكنك التحقق مما إذا كانت مكدس deque فارغًا باستخدام عامل التشغيل المنطقي " not ". إذا كانت deque فارغة ، فسيعيد " not my_deque " القيمة True . خلاف ذلك ، فإنه سيعود False .
على سبيل المثال ، لنفترض أن لديك مكدس deque يسمى “ my_deque ” وتريد التحقق مما إذا كانت فارغة. يمكنك استخدام الكود التالي:
if not my_deque:
print("The deque is empty")
else:
print("The deque is not empty")
سيؤدي هذا إلى طباعة " The deque فارغ " إذا كانت deque فارغة. إذا لم يكن فارغًا ، فسيكون الإخراج " The deque ليس فارغًا ".
عند العمل مع Deque كمكدس ، من المهم تتبع ما إذا كان المكدس فارغًا أم لا. إذا حاولت إخراج عنصر من مكدس فارغ ، فستحصل على خطأ في الفهرس .
ما هو Deque المقيد؟
Deque المقيد عبارة عن قائمة انتظار ذات نهايتين مع بعض القيود الموضوعة على إلحاق البيانات وعمليات الفرقعة في أي من طرفي deque. هناك نوعان رئيسيان من deques المقيدة ؛ الإدخال مقيد deque والإخراج مقيد deque
دعونا ننظر إليهم:
إدخال مقيد Deque
يسمح لك deque المقيّد الإدخال بفرقعة عناصر البيانات أو حذفها من طرفي deque. ومع ذلك ، يمكنك فقط إدراج عناصر البيانات من أحد طرفي deque.
هذا مفيد جدًا في التطبيقات ذات قيود الذاكرة. يمكنك استخدامه لإضافة عناصر البيانات بترتيب زمني مع الاحتفاظ بالقدرة على تجاهل البيانات من أي نهاية من deque.
إخراج مقيد Deque
يسمح لك Deque مقيد الإخراج بإدخال البيانات من كلا طرفي deque. ومع ذلك ، يمكنك فقط حذف العناصر من نهاية واحدة من deque تسمى الواجهة الأمامية.
يعد deque المقيّد بالإخراج مفيدًا جدًا في الحالات التي تحتاج فيها إلى تنفيذ بنية بيانات FIFO ، ولكنك لا تزال تريد الوظيفة لإلحاق البيانات من كلا الطرفين.
دعونا نختتم هذا
الآن ، يجب أن يكون لديك فهم جيد لوحدة deque في Python وكيف يمكن استخدامها لتنفيذ قوائم انتظار ومكدسات فعالة.
Deques هي بنية بيانات متعددة الاستخدامات توفر العديد من المزايا مقارنة بالقوائم التقليدية. تتضح هذه المزايا عندما يتعلق الأمر بعمليات الإلحاق والانبثاق الموفرة للذاكرة.
إنها أيضًا خيار رائع عندما تحتاج إلى تنفيذ مكدس أو قائمة انتظار مزدوجة النهاية. تتضمن بعض الفوائد الرئيسية لاستخدام السدود ما يلي:
عمليات الإلحاق والفرقعة الفعالة O (1) من طرفي deque
الوصول السريع O (1) إلى العناصر الأولى والأخيرة من deque
دعم مدمج لعمليات ذرية آمنة بخيوط
طرق مرنة لإدخال وإزالة وتدوير العناصر في deque
بشكل عام ، تعد وحدة deque أداة قوية يمكنها مساعدتك في كتابة كود Python أكثر كفاءة وصيانته. سواء كنت تعمل في برنامج نصي صغير أو مشروع واسع النطاق ، فإن deques تستحق بالتأكيد التفكير كبديل للقوائم التقليدية أو هياكل البيانات الأخرى!
جاهز لمعرفة المزيد عن Python ، تحقق من قائمة التشغيل أدناه
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.