python - स्ट्रिंग को सरणी में सरणी कैसे विभाजित करें?




split (7)

मैंने अक्षरों की सरणी में एक स्ट्रिंग को विभाजित करने के उत्तर के लिए वेब के चारों ओर देखने की कोशिश की है, लेकिन मुझे एक साधारण विधि नहीं मिल रही है

str.split(//) रूबी की तरह काम नहीं कर रहा है। लूपिंग के बिना ऐसा करने का कोई आसान तरीका है?


आप इसे सूची के बिना इस बहुत ही सरल तरीके से भी कर सकते हैं ():

>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']

आप स्ट्रिंग लेते हैं और इसे सूची में पास करते हैं ()

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

खैर, मुझे सूची (संस्करण) संस्करण पसंद है, यहां एक और अधिक वर्बोज़ तरीका मिला है (लेकिन यह अच्छा है इसलिए मैंने सोचा कि मैं इसे मैदान में जोड़ दूंगा):

>>> text = "My hovercraft is full of eels"
>>> [text[i] for i in range(len(text))]
['M', 'y', ' ', 'h', 'o', 'v', 'e', 'r', 'c', 'r', 'a', 'f', 't', ' ', 'i', 's', ' ', 'f', 'u', 'l', 'l', ' ', 'o', 'f', ' ', 'e', 'e', 'l', 's']

मैंने इस कार्य को पूरा करने के लिए दो और तरीकों की खोज की। यह किसी के लिए सहायक हो सकता है।

पहला आसान है:

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 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

सरल:

s = 'My'    
print(list(s))

>>> s = "foobar"
>>> list(s)
['f', 'o', 'o', 'b', 'a', 'r']

आपको list





split