[python] كيفية تقسيم سلسلة إلى مجموعة من الشخصيات؟



Answers

أنت تأخذ السلسلة وتمريرها إلى قائمة ()

s = "mystring"
l = list(s)
print l
Question

لقد حاولت أن أبحث في جميع أنحاء شبكة الإنترنت للحصول على إجابات لتقسيم سلسلة إلى مجموعة من الأحرف ولكن لا يبدو لي أن العثور على طريقة بسيطة

لا يبدو str.split(//) يعمل مثل روبي. هل هناك طريقة بسيطة للقيام بذلك دون التكرار؟




>>> for i in range(len(a)):
...     print a[i]
... 

حيث a هي السلسلة التي تريد فصلها. القيم "a [i]" هي الحرف الفردي للسلسلة التي يمكن إلحاقها بقائمة.




إذا كنت ترغب في قراءة الوصول إلى السلسلة فقط ، يمكنك استخدام ترميز الصفيف مباشرة.

Python 2.7.6 (default, Mar 22 2014, 22:59:38) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> t = 'my string'
>>> t[1]
'y'

يمكن أن تكون مفيدة للاختبار دون استخدام regexp. هل تحتوي السلسلة على سطر جديد ينتهي؟

>>> t[-1] == '\n'
False
>>> t = 'my string\n'
>>> t[-1] == '\n'
True



إذا كنت تريد معالجة حرف سلسلة واحدة في كل مرة. لديك خيارات مختلفة. uhello = u'Hello \ u0020World '

استخدام الفهم بالقائمة : print ([x for x in uhello]) الإخراج: ['H' ، 'e' ، 'l' ، 'l' ، 'o' ، '' ، 'W' ، 'o' ، 'r '،' l '،' d ']

باستخدام الخريطة: print (list (map (lambda c2: c2، uhello))) Output: ['H'، 'e'، 'l'، 'l'، 'o'، ''، 'W'، 'o '،' r '،' l '،' d ']

استدعاء دالة طباعة قائمة مضمنة (قائمة (uhello)) الإخراج: ['H' ، 'e' ، 'l' ، 'l' ، 'o' ، '' ، 'W' ، 'o' ، 'r' ، 'l' ، 'd']

استخدام للحلقة: للحصول على c في uhello: print (c)




استكشفت طريقتين آخرتين لإنجاز هذه المهمة. قد يكون من المفيد لشخص ما.

الأول سهل:

In [25]: a = []
In [26]: s = 'foobar'
In [27]: a += s
In [28]: a
Out[28]: ['f', 'o', 'o', 'b', 'a', 'r']

والثاني استخدام map وظيفة lambda . قد يكون مناسبًا للمهام الأكثر تعقيدًا:

In [36]: s = 'foobar12'
In [37]: a = map(lambda c: c, s)
In [38]: a
Out[38]: ['f', 'o', 'o', 'b', 'a', 'r', '1', '2']

فمثلا

# isdigit, isspace or another facilities such as regexp may be used
In [40]: a = map(lambda c: c if c.isalpha() else '', s)
In [41]: a
Out[41]: ['f', 'o', 'o', 'b', 'a', 'r', '', '']

راجع مستندات python لمزيد من الطرق




Related



Tags

python python   split