الفرق بين المراجعتين لصفحة: «Python/str/split»

من موسوعة حسوب
< Python‏ | str
ط استبدال النص - ':الدالة' ب':التابع'
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>str.split()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:التابع <code>str.split()‎</code> في بايثون}}</noinclude>
تقسّم الدالة السلسلة النصية إلى [[Python/list|قائمة]] من [[Python/str|السلاسل النصية]] بالاعتماد على فاصل محدّد.
يقسّم هذا التابع السلسلة النصية إلى [[Python/list|قائمة]] من [[Python/str|السلاسل النصية]] بالاعتماد على فاصل محدّد.


== البنية العامة ==
== البنية العامة ==
سطر 10: سطر 10:


=== <code>maxsplit</code> ===
=== <code>maxsplit</code> ===
يحدد هذا المعامل الحد الأقصى لعمليات التي التقسيم التي ستجريها الدالة، وبهذا تمتلك القائمة المعادة <code>maxsplit+1</code> من العناصر على الأكثر.
يحدد هذا المعامل الحد الأقصى لعمليات التي التقسيم التي سيجريها التابع، وبهذا تمتلك القائمة المعادة <code>maxsplit+1</code> من العناصر على الأكثر.
في حال عدم تحديد قيمة المعامل <code>maxsplit</code> أو كانت قيمته <code>-1</code>، فلن يكون هناك حدّ لعمليات التقسيم (ستجري الدالة جميع عمليات التقسيم الممكنة).
 
في حال عدم تحديد قيمة المعامل <code>maxsplit</code> أو كانت قيمته <code>-1</code>، فلن يكون هناك حدّ لعمليات التقسيم (سيجري التابع جميع عمليات التقسيم الممكنة).


=== <code>sep</code> ===
=== <code>sep</code> ===
يحدّد هذا المعامل الفاصل الذي ستعتمده الدالة في تقسيم السلسلة النصية. في حال تحديد قيمة هذا المعامل لن تُجمّع الفواصل المتتابعة مع بعضها البعض وستعدّ فواصل للسلاسل الفارغة.
يحدّد هذا المعامل الفاصل الذي سيعتمده التابع في تقسيم السلسلة النصية. في حال تحديد قيمة هذا المعامل لن تُجمّع الفواصل المتتابعة مع بعضها البعض وستعدّ فواصل للسلاسل الفارغة.


يمكن أن يتكوّن المعامل <code>sep</code> من حروف متعددة.
يمكن أن يتكوّن المعامل <code>sep</code> من حروف متعددة.


== القيمة المعادة ==
== القيمة المعادة ==
تعيد الدالة [[Python/list|قائمة]] من [[Python/str|السلاسل النصية]].
يعيد التابع [[Python/list|قائمة]] من [[Python/str|السلاسل النصية]].


يؤدي تطبيق الدالة <code>split()</code>‎ على [[Python/str|سلسلة نصية]] فارغة إلى إعادة القيمة <code><nowiki>['']</nowiki></code>.
يؤدي تطبيق التابع <code>split()</code>‎ على [[Python/str|سلسلة نصية]] فارغة إلى إعادة القيمة <code><nowiki>['']</nowiki></code>.
 
في حال عدم تحديد قيمة المعامل <code>sep</code> أو إعطائه القيمة <code>None</code>، ستنفّذ الدالة الخوارزمية التالية لإجراء عملية التقسيم:
 
تعدّ مجموعة من المسافات البيضاء بمثابة فاصل واحد، وتكون النتيجة المعادة خالية من [[Python/str|السلاسل النصية]] الفارغة في البداية أو في النهاية إن كانت [[Python/str|السلسلة النصية]] الأصلية تتضمن مسافات بيضاء في نهايتها أو بدايتها.
 
وبناء على ذلك فإنّ نتيجة تقسيم [[Python/strسلسلة نصية|سلسلة نصية]] فارغة أو تتضمن مسافات بيضاء فقط باستخدام الفاصل <code>None</code> هي [[Python/list|قائمة فارغة]] <code>[]</code>.


في حال عدم تحديد قيمة المعامل <code>sep</code> أو إعطائه القيمة <code>None</code>، سيُنفّذ التابع الخوارزمية التالية لإجراء عملية التقسيم:


تعدّ مجموعة من المسافات البيضاء بمثابة فاصل واحد، وتكون النتيجة المعادة خالية من [[Python/str|السلاسل النصية]] الفارغة في البداية أو في النهاية إن كانت [[Python/str|السلسلة النصية]] الأصلية تتضمن مسافات بيضاء في نهايتها أو بدايتها. وبناء على ذلك فإنّ نتيجة تقسيم [[Python/strسلسلة نصية|سلسلة نصية]] فارغة أو تتضمن مسافات بيضاء فقط باستخدام الفاصل <code>None</code> هي [[Python/list|قائمة فارغة]] <code>[]</code>.


== أمثلة ==
== أمثلة ==
يوضّح المثال التالي طرقًا مختلفة لاستخدام الدالة <code>split()‎</code> والنتائج المعادة منها:
يوضّح المثال التالي طرائق مختلفة لاستخدام التابع <code>split()‎</code> والنتائج المعادة منه:


<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
سطر 53: سطر 50:
</syntaxhighlight>
</syntaxhighlight>


== انظر أيضًا ==
==انظر أيضًا==
* [[Python/str/rsplit|الدالة str.rsplit()‎ في بايثون.]]
*[[Python/str|السلاسل النصية في بايثون.]]
* [[Python/str|السلاسل النصية في بايثون.]]
*التابع <code>[[Python/str/capitalize|str.capitalize()‎]]</code>: إعادة نسخة من السلسلة النصية مع تحويل الحرف الأول إلى حرف كبير، والأحرف الباقية إلى أحرف صغيرة.
* [[Python/list|القوائم في بايثون.]]
*التابع <code>[[Python/str/casefold|str.casefold()‎]]</code>: إعادة السلسلة النصية بحالة casefolded، ويمكن استخدام هذا النوع من السلاسل لإجراء المقارنة دون الاعتماد على حالة الأحرف.
 
*التابع <code>[[Python/str/center|str.center()‎]]</code>: إعادة أحرف السلسلة النصية مزاحة نحو الوسط ضمن سلسلة نصّية ذات طول محدّد.
*التابع <code>[[Python/str/count|str.count()‎]]</code>: إعادة عدد مرات ظهور سلسلة نصية فرعية ضمن السلسلة الأصلية.
*التابع <code>[[Python/str/encode|str.encode()‎]]</code>: إعادة نسخة مرمّزة من السلسلة النصية على هيئة <nowiki/>[[Python/bytes|بايتات]].
*التابع <code>[[Python/str/endswith|str.endswith()‎]]</code>: التحقق من وجود سلسلة نصية فرعية في نهاية السلسلة النصية الأصلية.
*التابع <code>[[Python/str/expandtabs|str.expandtabs()‎]]</code>: إعادة نسخة من السلسلة النصية بعد تحويل جميع علامات الجدولة إلى مسافة بيضاء واحدة أو أكثر.
*التابع <code>[[Python/str/find|str.find()‎]]</code>: إعادة أدنى قيمة للفهرس في السلسلة النصية والذي تكون السلسلة الفرعية موجودة فيه ضمن الجزء المقتطع من السلسلة.
*التابع <code>[[Python/str/format|str.format()‎]]</code>: إجراء عمليات التنسيق على السلسلة النصية بواسطة <nowiki/>[[Python/arguments|معاملات موضعية]] أو <nowiki/>[[Python/arguments#.D9.85.D8.B9.D8.A7.D9.85.D9.84.D8.A7.D8.AA .D8.A7.D9.84.D9.83.D9.84.D9.85.D8.A7.D8.AA .D8.A7.D9.84.D9.85.D9.81.D8.AA.D8.A7.D8.AD.D9.8A.D8.A9|مفتاحية]].
*التابع <code>[[Python/str/format_map|str.format_map()‎]]</code>: إجراء عمليات التنسيق على السلسلة النصية بواسطة <nowiki/>[[Python/dict|قاموس]].
*التابع <code>[[Python/str/index|str.index()‎]]</code>: إجراء نفس وظيفة الدالة <code>[[Python/str/find|str.find()‎]]</code>.
*التابع <code>[[Python/str/isalnum|str.isalnum()‎]]</code>: التحقق ممّا إذا كانت السلسلة النصية تضمّ حروفًا وأرقامًا وأنّها تضمّ حرفًا واحدًا على الأقل.
*التابع <code>[[Python/str/isalpha|str.isalpha()‎]]</code>: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من الحروف فقط، وأنّ فيها حرفًا واحدًا على الأقل.
*التابع <code>[[Python/str/isdecimal|str.isdecimal()‎]]</code>: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد العشرية فقط، وأنّ فيها حرفًا واحدًا على الأقل.
*التابع <code>[[Python/str/isdigit|str.isdigit()‎]]</code>: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد (digits) فقط، وأنّ فيها حرفًا واحدًا على الأقل.
*التابع <code>[[Python/str/isidentifier|str.isidentifier()‎]]</code>: التحقق ممّا إذا كانت السلسلة النصية تتضمّن معرّفًا صحيحًا (identifier) في لغة بايثون.
*التابع <code>[[Python/str/islower|str.islower()‎]]</code>: التحقق ممّا إذا كانت حروف السلسلة النصية حروفًا صغيرة (lowercase).
*التابع <code>[[Python/str/isnumeric|str.isnumeric()‎]]</code>: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية حروفًا عددية، وأنّ هناك حرفًا واحدًا على الأقل في تلك السلسلة.
*التابع <code>[[Python/str/isprintable|str.isprintable()‎]]</code>: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية قابلة للطباعة أو أن السلسلة النصية فارغة.
*التابع <code>[[Python/str/isspace|str.isspace()‎]]</code>: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف مسافات بيضاء فقط وأنّ في السلسلة حرفًا واحدًا على الأقل.
*التابع <code>[[Python/str/istitle|str.istitle()‎]]</code>: التحقق ممّا إذا كانت أوائل الكلمات في السلسلة النصية حروفًا كبيرة (titlecased).
*التابع <code>[[Python/str/isupper|str.isupper()‎]]</code>: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية حروفًا كبيرة.
*التابع <code>[[Python/str/join|str.join()‎]]</code>: إعادة السلسلة النصية الناتجة عن ربط السلاسل النصية التابعة لكائن قابل للتكرار (iterable).
*التابع <code>[[Python/str/ljust|str.ljust()‎]]</code>: إعادة أحرف السلسلة النصية مزاحة نحو اليسار ضمن سلسلة نصّية ذات طول محدّد.
*التابع <code>[[Python/str/lower|str.lower()‎]]</code>: تحويل جميع الحروف في السلسلة النصية إلى حروف صغيرة.
*التابع <code>[[Python/str/lstrip|str.lstrip()‎]]</code>: حذف الحروف التي يحدّدها المستخدم من بداية السلسلة النصية.
*التابع <code>[[Python/str/maketrans|str.maketrans()‎]]</code>: إعادة جدول تحويل يمكن استخدامه بواسطة الدالة <code>[[Python/str/translate|str.translate()]]‎</code>.
*التابع <code>[[Python/str/partition|str.partition()‎]]</code>: تقسيم السلسلة النصية عند أول ظهور للقيمة التي يحدّدها المستخدم.
*التابع <code>[[Python/str/replace|str.replace()‎]]</code>: تبديل هذه الدالة العبارة التي يختارها المستخدم - مهما تكرّرت في السلسلة النصية - إلى القيمة الجديدة التي يحدّدها.
*التابع <code>[[Python/str/rfind|str.rfind()‎]]</code>: إعادة أعلى قيمة للفهرس في السلسلة النصية حيث تجد فيه السلسلة النصية الفرعية.
*التابع <code>[[Python/str/rindex|str.rindex()‎]]</code>: إعادة أعلى قيمة للفهرس في السلسلة النصية حيث تجد فيه السلسلة النصية الفرعية.
*التابع <code>[[Python/str/rjust|str.rjust()‎]]</code>: إعادى أحرف السلسلة النصية مزاحة نحو اليمين ضمن سلسلة نصّية ذات طول محدّد.
*التابع <code>[[Python/str/rpartition|str.rpartition()‎]]</code>: تقسيم السلسلة النصية عند آخر ظهور للقيمة التي يحدّدها المستخدم.
*التابع <code>[[Python/str/rsplit|str.rsplit()‎]]</code>: تحويل السلسلة النصية من جهة اليمين إلى <nowiki/>[[Python/list|قائمة]] من السلاسل النصية بالاعتماد على الفاصل الذي يحدّده المستخدم.
*التابع <code>[[Python/str/rstrip|str.rstrip()‎]]</code>: حذف الحروف التي يحدّدها المستخدم من نهاية السلسلة النصية.
*التابع <code>[[Python/str/splitlines|str.splitlines()‎]]</code>: تقسيم السلسلة النصية إلى <nowiki/>[[Python/list|قائمة]] من الأسطر.
*التابع <code>[[Python/str/startswith|str.startswith()‎]]</code>: التحقق من أنّ السلسلة النصية تبدأ بالقيمة التي يحدّدها المستخدم.
*التابع <code>[[Python/str/strip|str.strip()‎]]</code>: حذف الحروف المحدّدة من قبل المستخدم من نهاية وبداية السلسلة النصية.
*التابع <code>[[Python/str/swapcase|str.swapcase()‎]]</code>: قلب حالة الحروف في السلسلة النصية.
*التابع <code>[[Python/str/title|str.title()‎]]</code>: تحويل أوائل الكلمات في السلسلة النصية إلى أحرف كبيرة (Title Case).
*التابع <code>[[Python/str/translate|str.translate()‎]]</code>: إعادة الحروف في السلسلة النصية بالاعتماد على جدول التحويل (translation table).
*التابع <code>[[Python/str/upper|str.upper()‎]]</code>: تحويل الحروف في السلسلة النصية إلى حروف كبيرة.
*التابع <code>[[Python/str/zfill|str.zfill()‎]]</code>: إضافة أصفار من الترميز ASCII إلى يسار السلسلة النصية لتصبح السلسلة بالطول المحدد من قبل المستخدم.
== مصادر ==
== مصادر ==
* [https://docs.python.org/3/library/stdtypes.html#str.split قسم split في صفحة Types في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/stdtypes.html#str.split قسم split في صفحة Types في توثيق بايثون الرسمي.]

المراجعة الحالية بتاريخ 11:58، 10 يونيو 2018

يقسّم هذا التابع السلسلة النصية إلى قائمة من السلاسل النصية بالاعتماد على فاصل محدّد.

البنية العامة

x.split()

المعاملات

maxsplit

يحدد هذا المعامل الحد الأقصى لعمليات التي التقسيم التي سيجريها التابع، وبهذا تمتلك القائمة المعادة maxsplit+1 من العناصر على الأكثر.

في حال عدم تحديد قيمة المعامل maxsplit أو كانت قيمته -1، فلن يكون هناك حدّ لعمليات التقسيم (سيجري التابع جميع عمليات التقسيم الممكنة).

sep

يحدّد هذا المعامل الفاصل الذي سيعتمده التابع في تقسيم السلسلة النصية. في حال تحديد قيمة هذا المعامل لن تُجمّع الفواصل المتتابعة مع بعضها البعض وستعدّ فواصل للسلاسل الفارغة.

يمكن أن يتكوّن المعامل sep من حروف متعددة.

القيمة المعادة

يعيد التابع قائمة من السلاسل النصية.

يؤدي تطبيق التابع split()‎ على سلسلة نصية فارغة إلى إعادة القيمة [''].

في حال عدم تحديد قيمة المعامل sep أو إعطائه القيمة None، سيُنفّذ التابع الخوارزمية التالية لإجراء عملية التقسيم:

تعدّ مجموعة من المسافات البيضاء بمثابة فاصل واحد، وتكون النتيجة المعادة خالية من السلاسل النصية الفارغة في البداية أو في النهاية إن كانت السلسلة النصية الأصلية تتضمن مسافات بيضاء في نهايتها أو بدايتها. وبناء على ذلك فإنّ نتيجة تقسيم سلسلة نصية فارغة أو تتضمن مسافات بيضاء فقط باستخدام الفاصل None هي قائمة فارغة [].

أمثلة

يوضّح المثال التالي طرائق مختلفة لاستخدام التابع split()‎ والنتائج المعادة منه:

>>> '1,,2'.split(',')
['1', '', '2']
>>> '1<>2<>3'.split('<>')
['1', '2', '3']
>>> '1,2,3'.split(',')
['1', '2', '3']
>>> '1,2,3'.split(',', maxsplit=1)
['1', '2,3']
>>> '1,2,,3,'.split(',')
['1', '2', '', '3', '']
>>> '1 2 3'.split()
['1', '2', '3']
>>> '1 2 3'.split(maxsplit=1)
['1', '2 3']
>>> '   1   2   3   '.split()
['1', '2', '3']

انظر أيضًا

  • السلاسل النصية في بايثون.
  • التابع str.capitalize()‎: إعادة نسخة من السلسلة النصية مع تحويل الحرف الأول إلى حرف كبير، والأحرف الباقية إلى أحرف صغيرة.
  • التابع str.casefold()‎: إعادة السلسلة النصية بحالة casefolded، ويمكن استخدام هذا النوع من السلاسل لإجراء المقارنة دون الاعتماد على حالة الأحرف.
  • التابع str.center()‎: إعادة أحرف السلسلة النصية مزاحة نحو الوسط ضمن سلسلة نصّية ذات طول محدّد.
  • التابع str.count()‎: إعادة عدد مرات ظهور سلسلة نصية فرعية ضمن السلسلة الأصلية.
  • التابع str.encode()‎: إعادة نسخة مرمّزة من السلسلة النصية على هيئة بايتات.
  • التابع str.endswith()‎: التحقق من وجود سلسلة نصية فرعية في نهاية السلسلة النصية الأصلية.
  • التابع str.expandtabs()‎: إعادة نسخة من السلسلة النصية بعد تحويل جميع علامات الجدولة إلى مسافة بيضاء واحدة أو أكثر.
  • التابع str.find()‎: إعادة أدنى قيمة للفهرس في السلسلة النصية والذي تكون السلسلة الفرعية موجودة فيه ضمن الجزء المقتطع من السلسلة.
  • التابع str.format()‎: إجراء عمليات التنسيق على السلسلة النصية بواسطة معاملات موضعية أو مفتاحية.
  • التابع str.format_map()‎: إجراء عمليات التنسيق على السلسلة النصية بواسطة قاموس.
  • التابع str.index()‎: إجراء نفس وظيفة الدالة str.find()‎.
  • التابع str.isalnum()‎: التحقق ممّا إذا كانت السلسلة النصية تضمّ حروفًا وأرقامًا وأنّها تضمّ حرفًا واحدًا على الأقل.
  • التابع str.isalpha()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من الحروف فقط، وأنّ فيها حرفًا واحدًا على الأقل.
  • التابع str.isdecimal()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد العشرية فقط، وأنّ فيها حرفًا واحدًا على الأقل.
  • التابع str.isdigit()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد (digits) فقط، وأنّ فيها حرفًا واحدًا على الأقل.
  • التابع str.isidentifier()‎: التحقق ممّا إذا كانت السلسلة النصية تتضمّن معرّفًا صحيحًا (identifier) في لغة بايثون.
  • التابع str.islower()‎: التحقق ممّا إذا كانت حروف السلسلة النصية حروفًا صغيرة (lowercase).
  • التابع str.isnumeric()‎: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية حروفًا عددية، وأنّ هناك حرفًا واحدًا على الأقل في تلك السلسلة.
  • التابع str.isprintable()‎: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية قابلة للطباعة أو أن السلسلة النصية فارغة.
  • التابع str.isspace()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف مسافات بيضاء فقط وأنّ في السلسلة حرفًا واحدًا على الأقل.
  • التابع str.istitle()‎: التحقق ممّا إذا كانت أوائل الكلمات في السلسلة النصية حروفًا كبيرة (titlecased).
  • التابع str.isupper()‎: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية حروفًا كبيرة.
  • التابع str.join()‎: إعادة السلسلة النصية الناتجة عن ربط السلاسل النصية التابعة لكائن قابل للتكرار (iterable).
  • التابع str.ljust()‎: إعادة أحرف السلسلة النصية مزاحة نحو اليسار ضمن سلسلة نصّية ذات طول محدّد.
  • التابع str.lower()‎: تحويل جميع الحروف في السلسلة النصية إلى حروف صغيرة.
  • التابع str.lstrip()‎: حذف الحروف التي يحدّدها المستخدم من بداية السلسلة النصية.
  • التابع str.maketrans()‎: إعادة جدول تحويل يمكن استخدامه بواسطة الدالة str.translate().
  • التابع str.partition()‎: تقسيم السلسلة النصية عند أول ظهور للقيمة التي يحدّدها المستخدم.
  • التابع str.replace()‎: تبديل هذه الدالة العبارة التي يختارها المستخدم - مهما تكرّرت في السلسلة النصية - إلى القيمة الجديدة التي يحدّدها.
  • التابع str.rfind()‎: إعادة أعلى قيمة للفهرس في السلسلة النصية حيث تجد فيه السلسلة النصية الفرعية.
  • التابع str.rindex()‎: إعادة أعلى قيمة للفهرس في السلسلة النصية حيث تجد فيه السلسلة النصية الفرعية.
  • التابع str.rjust()‎: إعادى أحرف السلسلة النصية مزاحة نحو اليمين ضمن سلسلة نصّية ذات طول محدّد.
  • التابع str.rpartition()‎: تقسيم السلسلة النصية عند آخر ظهور للقيمة التي يحدّدها المستخدم.
  • التابع str.rsplit()‎: تحويل السلسلة النصية من جهة اليمين إلى قائمة من السلاسل النصية بالاعتماد على الفاصل الذي يحدّده المستخدم.
  • التابع str.rstrip()‎: حذف الحروف التي يحدّدها المستخدم من نهاية السلسلة النصية.
  • التابع str.splitlines()‎: تقسيم السلسلة النصية إلى قائمة من الأسطر.
  • التابع str.startswith()‎: التحقق من أنّ السلسلة النصية تبدأ بالقيمة التي يحدّدها المستخدم.
  • التابع str.strip()‎: حذف الحروف المحدّدة من قبل المستخدم من نهاية وبداية السلسلة النصية.
  • التابع str.swapcase()‎: قلب حالة الحروف في السلسلة النصية.
  • التابع str.title()‎: تحويل أوائل الكلمات في السلسلة النصية إلى أحرف كبيرة (Title Case).
  • التابع str.translate()‎: إعادة الحروف في السلسلة النصية بالاعتماد على جدول التحويل (translation table).
  • التابع str.upper()‎: تحويل الحروف في السلسلة النصية إلى حروف كبيرة.
  • التابع str.zfill()‎: إضافة أصفار من الترميز ASCII إلى يسار السلسلة النصية لتصبح السلسلة بالطول المحدد من قبل المستخدم.

مصادر