هل هناك وظيفة في بايثون لتقسيم الكلمة إلى قائمة؟

StackOverflow https://stackoverflow.com/questions/113655

  •  02-07-2019
  •  | 
  •  

سؤال

هل هناك وظيفة في بايثون لتقسيم الكلمة إلى قائمة من الحروف المفردة؟على سبيل المثال:

s="Word to Split"

تحصل

wordlist=['W','o','r','d','','t','o' ....]
هل كانت مفيدة؟

المحلول

>>> list("Word to Split")
['W', 'o', 'r', 'd', ' ', 't', 'o', ' ', 'S', 'p', 'l', 'i', 't']

نصائح أخرى

ربما تكون أسهل طريقة هي الاستخدام فقط list(), ، ولكن هناك خيارًا واحدًا آخر على الأقل أيضًا:

s = "Word to Split"
wordlist = list(s)               # option 1, 
wordlist = [ch for ch in s]      # option 2, list comprehension.

يجب عليهم كلاهما أعطيك ما تحتاجه:

['W','o','r','d',' ','t','o',' ','S','p','l','i','t']

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

[doSomethingWith(ch) for ch in s]

إساءة استخدام القواعد، نفس النتيجة:(x لـ x في "الكلمة المراد تقسيمها")

في الواقع مكرر، وليس قائمة.ولكن من المحتمل أنك لن تهتم حقًا.

وظيفة القائمة سوف تفعل هذا

>>> list('foo')
['f', 'o', 'o']
text = "just trying out"

word_list = []

for i in range(0, len(text)):
    word_list.append(text[i])
    i+=1

print(word_list)

['j', 'u', 's', 't', ' ', 't', 'r', 'y', 'i', 'n', 'g', ' ', 'o', 'u', 't']
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top