"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ملاحظات/حيل/دروس/فروق دقيقة في لغة بايثون

ملاحظات/حيل/دروس/فروق دقيقة في لغة بايثون

تم النشر بتاريخ 2024-11-01
تصفح:269

Python notes/tricks/lessons/nuances

لقد قمت بإنشاء منشور حول حيل لغة C وأردت أن أكتب عن الكثير من الحيل التي أعرفها، نظرًا لأن معظمها موجود في Python وJS على الرغم من أنني قمت بالبرمجة بلغة C a أكثر من ذلك بكثير ولكن على أي حال، ها هي، سأبدأ بأشياء تافهة حول بناء جملة بايثون الأساسي ولكن هناك بعض الأشياء غير المعروفة للمبتدئين، والتي حددتها بنجمة ⭐️:

1. القوائم

  • هيكل بيانات مجموعة مرتبة من العناصر
  • يمكن أن يكون لها أنواع متعددة
  • aa = ["apple"، 'd'، 3، 9.3]

التهيئة:

  1. أ = [1، 2]
  2. أ = القائمة ()
  3. أ = قائمة([2، 3])
  4. [0]*5
  5. concat_list = list1 list2

الوصول إلى العناصر ⭐️

  • 0 ... ن-1 و -ن ... -1

وظائف

  • لين(القائمة1)
  • أ.إلحاق(قيمة)
  • a.insert(index, value): يُدرج قيمة في الفهرس ويدفع كل شيء إلى اليمين
  • a.pop(): إرجاع القيمة النهائية وإزالتها
  • a.remove(value): إذا لم تكن القيمة موجودة، فسوف تحصل على خطأ ValueError
  • a.clear()
  • a.reverse(): عكس في المكان
  • a.sort(): يعدل الأصل
  • ب = مصنف (أ): لا يعدل الأصل

تقطيع ⭐️

طريقة سهلة للوصول إلى المصفوفات الفرعية للقائمة

  • SlicedList = a[1:5]: يبدأ عند الفهرس 1 ويتوقف عند الفهرس 5، ويتم استبعاد الفهرس 5
  • سلايدليست = أ[:3]: من 0 ... 2
  • قائمة الشرائح = أ[1:3]: من 1 إلى 2
  • SlicedList = a[:]: تكرار القائمة بأكملها
  • SlicedList = myList[::2]: فهرس الخطوات، كل عنصر ثانٍ، ابدأ بالعنصر الأول، بشكل أساسي i=0;i
  • SlicedList = myList[::-1]: طريقة رائعة لعكس القائمة

نسخ القائمة

1. نسخة ضحلة

  • أ = [1، 2، 3]
  • ب = أ

تعديل أحدهما يؤدي أيضًا إلى تعديل الآخر نظرًا لأن كلاهما نفس تخصيصات الذاكرة

2. النسخ العميق ⭐️

ثلاث طرق:

  1. ب = أ.نسخ()
  2. ب = القائمة(أ)
  3. ب = أ[:]

قائمة الفهم

سأبدأ ببعض عمليات الفهم الأساسية للقائمة، لكنها سرعان ما ستصبح أقل تافهة.

  • القيم = [x 1 لـ x في النطاق (10)] -> [1، 2، 3، 4، 5، 6، 7، 8، 9، 10]

- القيم = [x لـ x في النطاق(51) إذا x % 2 == 0]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

فهم القائمة المتداخلة ⭐️

تسوية قائمة القوائم، أو مصفوفة ثنائية الأبعاد
فهم القائمة المتداخلة: تسوية المصفوفة (قائمة القوائم) ⭐️

مثال: المصفوفة = [[1، 2، 3]، [4، 5، 6]، [7، 8، 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • فهم القائمة الأخرى:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • هذه الجملة ->
    "حتى" إذا كان x % 2 == 0 آخر "Odd" صالحًا في الكثير من الأماكن في python، يمكنك أيضًا وضعه في متغيرات، وهذا في الأساس عامل تشغيل ثلاثي ولكنه أكثر تفصيلاً

  • ⭐️ لفهم أي قائمة، انظر دائمًا إلى الجانب الأيسر والأيمن من التعبير، وأي حلقات متداخلة تنتقل من اليسار إلى اليمين، وعندما يكون if else على يسار حلقة for، فإننا نتحقق من القيمة هل نريد الإدراج اعتمادًا على شرط if else، بينما عندما تكون حلقة for على اليمين نحاول التصفية من القائمة

  • على سبيل المثال لإنشاء قائمة 5x5x5: ⭐️

values = [[[num 1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ ابحث عن الجزء الخارجي الأكثر حلقة for، أي شيء على يسارها سيتم إضافته إلى مصفوفة القيم[]، ومعنى بناء الجملة هذا: for _ in range(5) هو أنني أريد أن أفعل كل ما هو موجود يسار هذه الحلقة 5 مرات (لأنني لا أهتم بقيمة متغير التكرار في كل تكرار)

  • وظائف في الفهم:\ القيم = [x**2 لـ x في القيم إذا كانت صالحة(x)]

فهم القاموس

إذا كان لدينا أزواج = [("a"، 1)، ("b"، 2)]: قائمة الأزواج أو الصفوف

-> my_dict = {k:v for k, v in Pairs}: تفريغ القيمة، لكي ينجح هذا، يجب أن يحتوي كل "زوج" في أزواج على كيانين بالضبط

ضبط الفهم

دع الأعداد = [1، 2، 3، 1، 3، 2، 4، 2، 1، 3]

unique_nums = {x for x in nums}: سيعرف بايثون أن هذه يجب أن تكون مجموعة لأنه ليس لديك أي مفاتيح

سأكتب هذا بمجرد أن أحصل على بعض الوقت، ولكن لا يزال بإمكانك التحقق منها هنا: AdvancedPythonConcepts هذا هو git repo الخاص بي حيث قمت بتوثيق مفاهيم بايثون عندما تعلمتها لأول مرة. سأكتب هذا المنشور بناءً على هذا الريبو بمجرد أن أحصل على الوقت...

بيان الافراج تم نشر هذه المقالة على: https://dev.to/yashdevs/python-tricks-5b0c?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3