الفرق بين المراجعتين لصفحة: «Python/sequence operations»
لا ملخص تعديل |
|||
سطر 39: | سطر 39: | ||
|اقتطاع التسلسل <code>s</code> من العنصر <code>i</code> إلى العنصر <code>j</code> كل <code>k</code> خطوة | |اقتطاع التسلسل <code>s</code> من العنصر <code>i</code> إلى العنصر <code>j</code> كل <code>k</code> خطوة | ||
|(3)(5) | |(3)(5) | ||
|- | |||
|<code>len(s)</code> | |||
|طول التسلسل <code>s</code> | |||
| | |||
|- | |||
|<code>min(s)</code> | |||
|أصغر عنصر في التسلسل <code>s</code> | |||
| | |||
|- | |||
|<code>max(s)</code> | |||
|أكبر عنصر في التسلسل <code>s</code> | |||
| | |||
|- | |||
|<code>s.index(x[, i[, j]])</code> | |||
|فهرس الظهور الأول للعنصر <code>x</code> في التسلسل <code>s</code> (عند أو بعد الفهرس <code>i</code> و قبل الفهرس <code>j</code>) | |||
|(8) | |||
|- | |||
|<code>s.count(x)</code> | |||
|عدد مرات ظهور العنصر <code>x</code> في التسلسل <code>s</code> | |||
| | |||
|} | |} | ||
ملاحظات | |||
== ملاحظات == | |||
1- صحيح أن عمليتي <code>in</code> و <code>not in</code> تستخدمان عادة للتحقق من وجود قيمة معينة ضمن عناصر التسلسل، ولكن بعض أنواع التسلسلات ([[Python/str|السلاسل النصية]]، [[Python/bytes|البايتات]] و<nowiki/>[[Python/bytearray|مصفوفات البايتات]]) تستخدم هذه العملية لاختبار السلاسل الفرعية: | |||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
>>> "gg" in "eggs" | >>> "gg" in "eggs" | ||
True | True | ||
</syntaxhighlight>2- تعامل قيم <code>n</code> التي تقل عن الصفر معاملة الصفر، وهذا يؤدي إلى إنشاء تسلسل فارغ من نفس نوع التسلسل <code>s</code>. لاحظ أنّ عناصر التسلسل <code>s</code> لن تنسخ وإنّما سيشار إليها عدّة مرات، وهنا يُخطئ الكثير من المبتدئين في لغة بايثون، فمثلًا:<syntaxhighlight lang="python3"> | |||
>>> lists = [[]] * 3 | |||
>>> lists | |||
[[], [], []] | |||
>>> lists[0].append(3) | |||
>>> lists | |||
[[3], [3], [3]] | |||
</syntaxhighlight> | </syntaxhighlight> | ||
ما حدث هنا أنّ التعبير <code>[[]]</code> يمثّل قائمة ذات عنصر واحد هو بدوره قائمة فارغة؛ لذا تكون العناصر الثلاثة الناشئة من التعبير <code>[[]] * 3</code> إشارات إلى هذه القائمة الفارغة، ويؤدي تعديل أي عنصر من عناصر القوائم الثلاثة إلى تعديل القائمة الأولى. يمكن اتباع الطريقة التالية لإنشاء قائمة تتضمن قوائم مختلفة:<syntaxhighlight lang="python3"> | |||
>>> lists = [[] for i in range(3)] | |||
>>> lists[0].append(3) | |||
>>> lists[1].append(5) | |||
>>> lists[2].append(7) | |||
>>> lists | |||
[[3], [5], [7]] | |||
</syntaxhighlight>3- إن كان العدد <code>i</code> أو <code>j</code> سالبًا، فإن عملية الفهرسة تجري من نهاية التسلسل <code>s</code> وتكون مكافئة للتعبير <code>len(s) + i</code> أو <code>len(s) + j</code>. لاحظ أنّ القيمة <code>-0</code> تساوي <code>0</code>. | |||
4- يعرّف الجزء المقتطع من التسلسل <code>s</code> والذي يبدأ من الموقع <code>i</code> إلى الموقع <code>j</code> على أنّه تسلسل العناصر ذات الفهرس <code>k</code> بحيث تكون <code>i <= k < j</code>. إذا كانت قيمة <code>i</code> أو <code>j</code> أكبر من قيمة <code>len(s)</code> تستخدم اللغة <code>len(s)</code>. إذا لم تعيّن قيمة <code>i</code> أو كانت <code>None</code> تستخدم اللغة القيمة <code>0</code>. إذا لم تعيّن قيمة <code>j</code> أو كانت <code>None</code> تستخدم اللغة <code>len(s)</code>. إن كانت قيمة <code>i</code> أكبر من قيمة <code>j</code> أو تساويها فسيكون الجزء المقتطع فارغًا. | |||
5- يعرّف الجزء المقتطع من التسلسل <code>s</code> والذي يبدأ بالموقع <code>i</code> وينتهي بالموقع <code>j</code> كل <code>k</code> خطوة على أنّه تسلسل العناصر الذي يمتلك الفهرس <code>x = i + n*k</code> بحيث <code>0 <= n < (j-i)/k</code>. وبمعنى آخر، فإنّ الفهارس هي <code>i، i+k، i+2*k، i+3*k</code> وهكذا دواليك إلى حين الوصول إلى قيمة <code>j</code> (دون تضمين قيمة <code>j</code>). عندما تكون قيمة <code>k</code> موجبة تختزل قيمتا <code>i</code> و <code>j</code> إلى <code>len(s)</code> إن كانتا أكبر. عندما تكون قيمة <code>k</code> سالبة، تختزل قيمتا <code>i</code> و <code>j</code> إلى <code>len(s) - 1</code> إن كانتا أكبر. إن لم تعين قيمة <code>i</code> أو <code>j</code>، أو كانت <code>None</code> فإنّهما يصبحان قيمة النهاية (والتي تعتمد على إشارة <code>k</code>). لاحظ أنّه لا يمكن أن تأخذ <code>k</code> القيمة <code>0</code>. إن كانت قيمة <code>k</code> هي <code>None</code> فإنّ اللغة ستعدّها <code>1</code>. | |||
6- يؤدي ربط تسلسلات غير قابلة للتغيير إلى إنشاء كائنات جديدة دائمًا، وهذا يعني إن إنشاء تسلسل من عمليات ربط متعددة سيؤدي إلى استهلاك مضاعف للموارد في وقت التشغيل بالنسبة إلى الطول الكلي للتسلسل، ولجعل عملية الاستهلاك أقل وطأة يجب اختيار أحد البدائل التالية: | |||
* إن كانت عملية الربط تجري بين كائنات <code>[[Python/str|str]]</code> فيمكن إنشاء قائمة واستخدام التابع <code>str.join()</code> في النهاية أو الكتابة إلى نسخة <code>io.StringIO</code> ثم استعادة قيمته عند الانتهاء. | |||
* إن كانت عملية الربط تجري بين كائنات <code>[[Python/bytes|bytes]]</code> فيمكن بنفس الطريقة استخدام <code>bytes.join()</code> أو <code>io.BytesIO</code>، أو يمكن إجراء الربط في نفس المكان باستخدام كائن <code>[[Python/bytearray|bytearray]]</code> القابلة للتغيير. | |||
* إن كانت عملية الربط بين كائنات <code>[[Python/tuples|tuple]]</code> فيمكن توسيع عناصر [[Python/list|قائمة list]] بدلًا من ذلك. | |||
7- تدعم بعض أنواع التسلسلات (مثل <code>range</code>) نمطًا معيّنًا من تسلسل العناصر؛ لذا فإنّها لا تدعم عمليات الربط والتكرار. | |||
8- يطلق <code>index</code> خطأً من نوع <code>ValueError</code> عندما لا تعثر اللغة على <code>x</code> في التسلسل <code>s</code>. قد لا تدعم بعض طرق استخدام هذه العملية تمرير الوسائط الإضافية <code>i</code> و <code>j</code>. تساعد هذه الوسائط على إجراء عملية بحث فعّالة على أجزاء من التسلسل. يكافئ تمرير الوسائط الإضافية استخدام العبارة <code>s[i:j].index(x)</code> باستثناء عدم نسخ أي بيانات وإعادة فهرس يبدأ من بداية التسلسل بدلًا من بداية الجزء المقتطع. | |||
== عمليات التسلسلات غير القابلة للتغيير == | |||
تقدّم بايثون عملية واحدة فقط خاصّة بالتسلسلات غير القابلة للتغيير، وهذه العملية هي الدالة الداخلية <code>hash()</code>، تتيح هذه العملية استخدام التسلسلات غير القابلة للتغيير مثل [[Python/tuples|الصفوف]] كمفاتيح في [[Python/dict|القواميس]] وتخزينها في [[Python/set|المجموعات]] أو [[Python/set|المجموعات الجامدة]]. | |||
تؤدي محاولة تقطيع hash تسلسل يتضمّن قيمًا غير قابلة للتقطيع إلى إطلاق خطأً من نوع <code>TypeError</code>. | |||
== عمليات التسلسلات القابلة للتغيير == | |||
تقدّم بايثون مجموعة من العمليات الخاصّة بالتسلسلات القابلة للتغيير، وهي موضّحة في الجدول التالي. | |||
في هذا الجدول تمثّل <code>s</code> نسخة من تسلسل قابل للتغيير، وتمثّل <code>t</code> أي كائن يمكن المرور على عناصره (iterable) و تمثّل <code>x</code> كائنًا غير محدّد تنطبق عليه القيود التي تفرضها قيم أو أنواع التسلسل <code>s</code> (مثلًا: يتقبل النوع <code>bytearray</code> الأعداد الصحيحة المحصورة بالنطاق <code>0 <= x <= 255</code>فقط). | |||
{| class="wikitable" | |||
!العملية | |||
!النتيجة | |||
!الملاحظات | |||
|- | |||
|<code>s[i] = x</code> | |||
|استبدال العنصر <code>i</code> التابع للتسلسل <code>s</code> بقيمة <code>x</code> | |||
| | |||
|- | |||
|<code>s[i:j] = t</code> | |||
|استبدال الجزء المقتطع من <code>s</code> من الموقع <code>i</code> إلى الموقع <code>j</code> بمحتويات الكائن <code>t</code> | |||
| | |||
|- | |||
|<code>del s[i:j]</code> | |||
|مشابهة للتعبير <code>s[i:j] = []</code> | |||
| | |||
|- | |||
|<code>s[i:j:k] = t</code> | |||
|استبدال العناصر الناتجة من <code>s[i:j:k]</code>بعناصر <code>t</code> | |||
|يجب أن تمتلك t نفس طول التسلسل المقتطع المراد استبداله. | |||
|- | |||
|<code>del s[i:j:k]</code> | |||
|حذف العناصر الناتجة من <code>s[i:j:k]</code> من القائمة | |||
| | |||
|- | |||
|<code>s.append(x)</code> | |||
|إلحاق x بنهاية التلسلسل (مكافئ للتعبير <code>s[len(s):len(s)] = [x])</code> | |||
| | |||
|- | |||
|<code>s.clear()</code> | |||
|حذف جميع عناصر التسلسل s (مكافئ للتعبير <code>del s[:]</code>) | |||
|توفّر بايثون هذه الدالة كبديل لعمليات التقطيع التي لا تدعمها بعض أنواع التسلسلات (مثل [[Python/dict|القواميس]] [[Python/set|والمجموعات]]). | |||
قدّم الإصدار 3.3 من اللغة هذه الدالة لأول مرة. | |||
|- | |||
|<code>s.copy()</code> | |||
|إنشاء نسخة سطحية من s (مكافئ للتعبير <code>s[:]</code>) | |||
|توفّر بايثون هذه الدالة كبديل لعمليات التقطيع التي لا تدعمها بعض أنواع التسلسلات (مثل [[Python/dict|القواميس]] [[Python/set|والمجموعات]]). | |||
قدّم الإصدار 3.3 من اللغة هذه الدالة لأول مرة. | |||
|- | |||
|<code>s.extend(t)</code> أو <code>s += t</code> | |||
|إضافة محتويات <code>t</code> إلى التسلسل <code>s</code> (مكافئ للتعبير <code>s[len(s):len(s)] = t</code> في معظم الحالات) | |||
| | |||
|- | |||
|<code>s *= n</code> | |||
|تحديث قيمة <code>s</code> مع تكرار عناصره <code>n</code> مرة | |||
|يمثل <code>n</code> عددًا صحيحًا، أو كائنًا يستخدم التابع <code>__index__()</code>. يؤدي استخدام القيمة <code>0</code> أو أي قيمة سالبة إلى إفراغ التسلسل من محتوياته. لن تُنسخ عناصر التسلسل بل سيشار إليها لمرات عدة، وكما هو موضح في العملية <code>s * n</code> في أعلاه. | |||
|- | |||
|<code>s.insert(i, x)</code> | |||
|إدراج x في التسلسل s في الموقع i (مكافئ للتعبير <code>s[i:i] = x</code>). | |||
| | |||
|- | |||
|<code>s.pop([i])</code> | |||
|إعادة العنصر <code>i</code> وحذفه من التسلسل. | |||
|يأخذ الوسيط الاختياري <code>i</code> القيمة الافتراضية <code>-1</code>؛ لذا تعيد هذه الدالة العنصر الأخير وتحذفه بصورة افتراضية. | |||
|- | |||
|<code>s.remove(x)</code> | |||
|حذف أول عنصر في التسلسل s حيث <code>s[i] == x</code> | |||
|تطلق هذه الدالة خطأً من نوع <code>ValueError</code> عندما لا يكون <code>x</code> موجودًا في <code>s</code>. | |||
|- | |||
|<code>s.reverse()</code> | |||
|قلب عناصر التسلسل <code>s</code> ضمن التسلسل نفسه. | |||
|تقلب هذه الدالة التسلسل في مكانه وذلك اقتصادًا في الموارد عند قلب عناصر تسلسل كبير الحجم. لا تعيد هذه الدالة التسلسل المقلوب. | |||
|} | |||
== مصادر == | |||
صفحة [https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range Built-in types] في توثيق بايثون الرسمي. | |||
[[تصنيف:Python]] | |||
[[تصنيف:Python Operations]] |
مراجعة 20:09، 12 مارس 2018
تدعم بايثون مجموعة من العمليات الخاصة بالتسلسلات (القوائم، الصفوف، كائنات range، السلاسل النصية، والبايتات ومصفوفات البايتات).
يبين الجدول التالي مجموعة من العمليات المدعومة من قبل معظم أنواع التسلسلات بنوعيها القابل للتغيير (mutable) وغير القابل للتغيير (immutable).
في هذا الجدول يقصد بالحرفين s
و t
تسلسلين لهما النوع ذاته، وتمثّل الحروف n, i, j, k
أعدادًا صحيحة، وتمثل x
أي كائن تنطبق عليه القيود التي تفرضها قيم أو أنواع التسلسل s
.
هذه العمليات مرتبة حسب أولويتها ترتيبًا تصاعديًا:
العملية | النتيجة | الملاحظات |
---|---|---|
x in s
|
True إن كان عنصر من عناصر s يساوي x ، وإلا False
|
(1) |
x not in s
|
False إن كان عنصر من عناصر s يساوي x ، وإلا True
|
(1) |
s + t
|
ربط التسلسل s بالتسلسل t
|
(6)(7) |
s * n أو n * s
|
تكافئ إضافة s إلى نفسه n مرة
|
(2)(7) |
s[i]
|
العنصر ذو الترتيب i في التسلسل s ، يبدأ الترقيم من 0
|
(3) |
s[i:j]
|
اقتطاع التسلسل s من العنصر i إلى العنصر j
|
(3)(4) |
s[i:j:k]
|
اقتطاع التسلسل s من العنصر i إلى العنصر j كل k خطوة
|
(3)(5) |
len(s)
|
طول التسلسل s
|
|
min(s)
|
أصغر عنصر في التسلسل s
|
|
max(s)
|
أكبر عنصر في التسلسل s
|
|
s.index(x[, i[, j]])
|
فهرس الظهور الأول للعنصر x في التسلسل s (عند أو بعد الفهرس i و قبل الفهرس j )
|
(8) |
s.count(x)
|
عدد مرات ظهور العنصر x في التسلسل s
|
ملاحظات
1- صحيح أن عمليتي in
و not in
تستخدمان عادة للتحقق من وجود قيمة معينة ضمن عناصر التسلسل، ولكن بعض أنواع التسلسلات (السلاسل النصية، البايتات ومصفوفات البايتات) تستخدم هذه العملية لاختبار السلاسل الفرعية:
>>> "gg" in "eggs"
True
2- تعامل قيم n
التي تقل عن الصفر معاملة الصفر، وهذا يؤدي إلى إنشاء تسلسل فارغ من نفس نوع التسلسل s
. لاحظ أنّ عناصر التسلسل s
لن تنسخ وإنّما سيشار إليها عدّة مرات، وهنا يُخطئ الكثير من المبتدئين في لغة بايثون، فمثلًا:
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]
ما حدث هنا أنّ التعبير [[]]
يمثّل قائمة ذات عنصر واحد هو بدوره قائمة فارغة؛ لذا تكون العناصر الثلاثة الناشئة من التعبير [[]] * 3
إشارات إلى هذه القائمة الفارغة، ويؤدي تعديل أي عنصر من عناصر القوائم الثلاثة إلى تعديل القائمة الأولى. يمكن اتباع الطريقة التالية لإنشاء قائمة تتضمن قوائم مختلفة:
>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
3- إن كان العدد i
أو j
سالبًا، فإن عملية الفهرسة تجري من نهاية التسلسل s
وتكون مكافئة للتعبير len(s) + i
أو len(s) + j
. لاحظ أنّ القيمة -0
تساوي 0
.
4- يعرّف الجزء المقتطع من التسلسل s
والذي يبدأ من الموقع i
إلى الموقع j
على أنّه تسلسل العناصر ذات الفهرس k
بحيث تكون i <= k < j
. إذا كانت قيمة i
أو j
أكبر من قيمة len(s)
تستخدم اللغة len(s)
. إذا لم تعيّن قيمة i
أو كانت None
تستخدم اللغة القيمة 0
. إذا لم تعيّن قيمة j
أو كانت None
تستخدم اللغة len(s)
. إن كانت قيمة i
أكبر من قيمة j
أو تساويها فسيكون الجزء المقتطع فارغًا.
5- يعرّف الجزء المقتطع من التسلسل s
والذي يبدأ بالموقع i
وينتهي بالموقع j
كل k
خطوة على أنّه تسلسل العناصر الذي يمتلك الفهرس x = i + n*k
بحيث 0 <= n < (j-i)/k
. وبمعنى آخر، فإنّ الفهارس هي i، i+k، i+2*k، i+3*k
وهكذا دواليك إلى حين الوصول إلى قيمة j
(دون تضمين قيمة j
). عندما تكون قيمة k
موجبة تختزل قيمتا i
و j
إلى len(s)
إن كانتا أكبر. عندما تكون قيمة k
سالبة، تختزل قيمتا i
و j
إلى len(s) - 1
إن كانتا أكبر. إن لم تعين قيمة i
أو j
، أو كانت None
فإنّهما يصبحان قيمة النهاية (والتي تعتمد على إشارة k
). لاحظ أنّه لا يمكن أن تأخذ k
القيمة 0
. إن كانت قيمة k
هي None
فإنّ اللغة ستعدّها 1
.
6- يؤدي ربط تسلسلات غير قابلة للتغيير إلى إنشاء كائنات جديدة دائمًا، وهذا يعني إن إنشاء تسلسل من عمليات ربط متعددة سيؤدي إلى استهلاك مضاعف للموارد في وقت التشغيل بالنسبة إلى الطول الكلي للتسلسل، ولجعل عملية الاستهلاك أقل وطأة يجب اختيار أحد البدائل التالية:
- إن كانت عملية الربط تجري بين كائنات
str
فيمكن إنشاء قائمة واستخدام التابعstr.join()
في النهاية أو الكتابة إلى نسخةio.StringIO
ثم استعادة قيمته عند الانتهاء.
- إن كانت عملية الربط تجري بين كائنات
bytes
فيمكن بنفس الطريقة استخدامbytes.join()
أوio.BytesIO
، أو يمكن إجراء الربط في نفس المكان باستخدام كائنbytearray
القابلة للتغيير.
- إن كانت عملية الربط بين كائنات
tuple
فيمكن توسيع عناصر قائمة list بدلًا من ذلك.
7- تدعم بعض أنواع التسلسلات (مثل range
) نمطًا معيّنًا من تسلسل العناصر؛ لذا فإنّها لا تدعم عمليات الربط والتكرار.
8- يطلق index
خطأً من نوع ValueError
عندما لا تعثر اللغة على x
في التسلسل s
. قد لا تدعم بعض طرق استخدام هذه العملية تمرير الوسائط الإضافية i
و j
. تساعد هذه الوسائط على إجراء عملية بحث فعّالة على أجزاء من التسلسل. يكافئ تمرير الوسائط الإضافية استخدام العبارة s[i:j].index(x)
باستثناء عدم نسخ أي بيانات وإعادة فهرس يبدأ من بداية التسلسل بدلًا من بداية الجزء المقتطع.
عمليات التسلسلات غير القابلة للتغيير
تقدّم بايثون عملية واحدة فقط خاصّة بالتسلسلات غير القابلة للتغيير، وهذه العملية هي الدالة الداخلية hash()
، تتيح هذه العملية استخدام التسلسلات غير القابلة للتغيير مثل الصفوف كمفاتيح في القواميس وتخزينها في المجموعات أو المجموعات الجامدة.
تؤدي محاولة تقطيع hash تسلسل يتضمّن قيمًا غير قابلة للتقطيع إلى إطلاق خطأً من نوع TypeError
.
عمليات التسلسلات القابلة للتغيير
تقدّم بايثون مجموعة من العمليات الخاصّة بالتسلسلات القابلة للتغيير، وهي موضّحة في الجدول التالي.
في هذا الجدول تمثّل s
نسخة من تسلسل قابل للتغيير، وتمثّل t
أي كائن يمكن المرور على عناصره (iterable) و تمثّل x
كائنًا غير محدّد تنطبق عليه القيود التي تفرضها قيم أو أنواع التسلسل s
(مثلًا: يتقبل النوع bytearray
الأعداد الصحيحة المحصورة بالنطاق 0 <= x <= 255
فقط).
العملية | النتيجة | الملاحظات |
---|---|---|
s[i] = x
|
استبدال العنصر i التابع للتسلسل s بقيمة x
|
|
s[i:j] = t
|
استبدال الجزء المقتطع من s من الموقع i إلى الموقع j بمحتويات الكائن t
|
|
del s[i:j]
|
مشابهة للتعبير s[i:j] = []
|
|
s[i:j:k] = t
|
استبدال العناصر الناتجة من s[i:j:k] بعناصر t
|
يجب أن تمتلك t نفس طول التسلسل المقتطع المراد استبداله. |
del s[i:j:k]
|
حذف العناصر الناتجة من s[i:j:k] من القائمة
|
|
s.append(x)
|
إلحاق x بنهاية التلسلسل (مكافئ للتعبير s[len(s):len(s)] = [x])
|
|
s.clear()
|
حذف جميع عناصر التسلسل s (مكافئ للتعبير del s[:] )
|
توفّر بايثون هذه الدالة كبديل لعمليات التقطيع التي لا تدعمها بعض أنواع التسلسلات (مثل القواميس والمجموعات).
قدّم الإصدار 3.3 من اللغة هذه الدالة لأول مرة. |
s.copy()
|
إنشاء نسخة سطحية من s (مكافئ للتعبير s[:] )
|
توفّر بايثون هذه الدالة كبديل لعمليات التقطيع التي لا تدعمها بعض أنواع التسلسلات (مثل القواميس والمجموعات).
قدّم الإصدار 3.3 من اللغة هذه الدالة لأول مرة. |
s.extend(t) أو s += t
|
إضافة محتويات t إلى التسلسل s (مكافئ للتعبير s[len(s):len(s)] = t في معظم الحالات)
|
|
s *= n
|
تحديث قيمة s مع تكرار عناصره n مرة
|
يمثل n عددًا صحيحًا، أو كائنًا يستخدم التابع __index__() . يؤدي استخدام القيمة 0 أو أي قيمة سالبة إلى إفراغ التسلسل من محتوياته. لن تُنسخ عناصر التسلسل بل سيشار إليها لمرات عدة، وكما هو موضح في العملية s * n في أعلاه.
|
s.insert(i, x)
|
إدراج x في التسلسل s في الموقع i (مكافئ للتعبير s[i:i] = x ).
|
|
s.pop([i])
|
إعادة العنصر i وحذفه من التسلسل.
|
يأخذ الوسيط الاختياري i القيمة الافتراضية -1 ؛ لذا تعيد هذه الدالة العنصر الأخير وتحذفه بصورة افتراضية.
|
s.remove(x)
|
حذف أول عنصر في التسلسل s حيث s[i] == x
|
تطلق هذه الدالة خطأً من نوع ValueError عندما لا يكون x موجودًا في s .
|
s.reverse()
|
قلب عناصر التسلسل s ضمن التسلسل نفسه.
|
تقلب هذه الدالة التسلسل في مكانه وذلك اقتصادًا في الموارد عند قلب عناصر تسلسل كبير الحجم. لا تعيد هذه الدالة التسلسل المقلوب. |
مصادر
صفحة Built-in types في توثيق بايثون الرسمي.