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

بايثون - الفهرسة والتقطيع

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

Python - Indexing and Slicing

الفهرسة والتشريح مفهوم مهم في بايثون، خاصة عندما نستخدم السلاسل.

الفهرسة :

WKT، السلسلة ليست سوى سلسلة من الأحرف.
لذا، كل حرف له موضع وهو index والوصول إلى موضعه في تلك السلسلة المحددة يُعرف باسم indexing.

في بايثون، لدينا فهرسة مبنية على الصفر، أي أن الحرف الأول من السلسلة له فهرس (موضع) 0 بدلاً من أن يكون له فهرس (موضع) واحد، ثم الحرف الثاني له فهرس (موضع) 1 وهكذا.

]

على سبيل المثال،

>     H E L L O W O R L D
>     0 1 2 3 4 5 6 7 8 9

يُعرف هذا باسم الفهرسة الإيجابية حيث أننا استخدمنا الأرقام الموجبة فقط للإشارة إلى المؤشرات.

قد تتساءل "إذن، لدينا مؤشرات سلبية أيضًا؟؟"
Ofc، ولكن هنا ليس لدينا صفر في الموضع الأول لأنه ليس رقمًا سالبًا.

الفهرسة السلبية تسمح لنا بالوصول إلى الأحرف من نهاية السلسلة، أي أن الحرف الأخير له فهرس -1، والحرف الأخير الثاني له فهرس -2، وهكذا.

>      H  E  L  L  O  W  O  R  L  D
>    -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
word = "HELLOWORLD"

print(word[0])
print(word[5])

H
W

بصورة مماثلة،

print(word[-1])
print(word[-6])

D
0

هذا كل ما يتعلق بالفهرسة.


التقطيع :

فكر في تقطيع خيط مثل قطع شريحة من الكعكة من كعكة كاملة. يمكننا تحديد مكان بدء القطع (الفهرس)، ومكان الانتهاء (فهرس النهاية)، وحتى حجم كل شريحة (الخطوة). بهذه الطريقة، يمكننا إنشاء أجزاء أصغر من الكعكة (أو الخيط) بالطريقة التي نحبها تمامًا!

في بايثون، يتيح لنا تقطيع السلسلة الحصول على أجزاء معينة منها عن طريق تحديد مكان البدء ومكان الانتهاء داخل السلسلة.
لذا، على سبيل المثال، إذا كانت الرسالة تحتوي على "HELLOWORLD"، فستمنحك الرسالة [3:7] "LOWO" لأنها تبدأ عند الفهرس 3 ('L') وتنتهي قبل الفهرس 7 ('D') مباشرة. بهذه الطريقة، يمكننا استخراج أي جزء من السلسلة التي نحتاجها!

- الصيغة الأساسية للتقطيع هي،

string[start:stop]
  • فهرس البداية هو المكان الذي تبدأ فيه الشريحة، وهذا الفهرس شامل.
  • مؤشر التوقف هو المكان الذي تنتهي فيه الشريحة، ولكن هذا الفهرس حصري، مما يعني أن الحرف الموجود في هذا الفهرس غير مضمن في الشريحة.
text = "HappyBirthday"

print(text[0:5])  
print(text[5:13])

Happy
Birthday  

عند تقطيع سلسلة في بايثون، يمكننا ببساطة حذف فهرس البداية أو الإيقاف للتقطيع من بداية السلسلة أو نهايتها.
الأمر بهذه البساطة!

- التقطيع بخطوة،

لتحديد الفاصل الزمني بين الأحرف عند تقطيع سلسلة في بايثون، ما عليك سوى إضافة نقطتين متبوعتين بقيمة الخطوة:

string[start:stop:step]

يسمح هذا بالتحكم في الطريقة التي نريد بها تخطي أحرف السلسلة عند إنشاء شريحة.

message = "HELLOWORLD"
print(message[1::2])    

EORL

message[1::2] يبدأ التقطيع من الفهرس 1 ('E') إلى نهاية السلسلة، بخطوة 2.
ولذلك، فهو يتضمن الأحرف في المؤشرات 1 و3 و5 و7، مما يعطينا "EORL".

حتى رأينا التقطيع الإيجابي والآن دعونا نتعرف على التقطيع السلبي.

- التقطيع السلبي :

  • الخطوة السلبية تسمح لك بتقطيع السلسلة بترتيب عكسي.
  • دعنا ننتقل من الحرف الأخير الثاني إلى الحرف الثالث بترتيب عكسي
message = "HELLOWORLD"
print(message[-2:2:-1])

ROWOL

دعونا نلقي نظرة على بعض الأسئلة.

#اكتب دالة تأخذ سلسلة وترجع سلسلة جديدة تتكون من الحرف الأول والأخير.

word = "Python"
end = word[0] word[5]
print(end)

Pn

#اكتب دالة تعكس سلسلة معينة.

word = "Python"
print(word[::-1])

nohtyP

#بالنظر إلى سلسلة، قم باستخراج وإرجاع سلسلة فرعية من الحرف الثالث إلى الحرف الثامن (ضمنًا).

text = "MichaelJackson"
print(text[3:9])

haelJa

#بإعطاء عنوان بريد إلكتروني، قم باستخراج المجال وإعادته.

email = "[email protected]"
domain = email[:-10]
print(domain)

hello_world

#اكتب دالة تقوم بإرجاع كل حرف ثالث من سلسلة معينة.

text = "Programming"
print(text[::3])

Pgmn

#اكتب دالة تتخطى كل حرف ثانٍ ثم تعكس السلسلة الناتجة.

text1 = "Programming"
print(text1[::-2])

gimroP

#اكتب دالة تستخرج وترجع الأحرف بمؤشرات زوجية من سلسلة معينة.

text = "Programming"
print(text[::2])

Pormig

حسنًا، هذا هو الأساسي هنا.

.....

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

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

Copyright© 2022 湘ICP备2022001581号-3