2012-11-01 6 views
7

संभव डुप्लिकेट:एक स्ट्रिंग को कैसे परिवर्तित करें जिसमें पायथन में सूची में न्यूलाइन वर्ण हैं?

list = ['blue','orange', 'yellow', 'pink', 'black'] 

मैं के लिए कुछ करने की कोशिश की:

str = 'blue\norange\nyellow\npink\nblack' 
इस के लिए

:
split a string in python

मैं इस परिवर्तन करना चाहते हैं आर और जबकि loops और यह करने में सक्षम नहीं है। मैं सिर्फ अगले तत्व बनाने के लिए ट्रिगर करते समय न्यूलाइन वर्ण को हटाना चाहता हूं। मैं का उपयोग करने के लिए कहा गया था:

list(str) 

जो

['b', 'l', 'u', 'e', '\n', 'o', 'r', 'a', 'n', 'g', 'e', '\n', 'y', 'e', 'l', 'l', 'o', 'w', '\n', 'p', 'i', 'n', 'k', '\n', 'b', 'l', 'a', 'c', 'k'] 

इस मैं .remove() लेकिन केवल एक '\n' निकाल दिया जाता है का उपयोग करने के बाद देता है और कोड रंग वर्तनी के बारे और अधिक जटिल हो जाता है।

+6

'str.split ('\ n')' – mgibsonbr

उत्तर

10

आप your_str.splitlines() चाहते हैं, या संभवतः सिर्फ your_str.split('\n')

पाश के लिए एक का उपयोग करना - केवल अनुदेशात्मक उपयोग के लिए:

out = [] 
buff = [] 
for c in your_str: 
    if c == '\n': 
     out.append(''.join(buff)) 
     buff = [] 
    else: 
     buff.append(c) 
else: 
    if buff: 
     out.append(''.join(buff)) 

print out 
+0

धन्यवाद बहुत बहुत, यह काम करता हैं। मैं बस सोच रहा था कि लूप के लिए या प्रयोग करते समय ऐसा करने का कोई तरीका है या नहीं? –

+0

@IsraelCA - निश्चित रूप से वहाँ है। लेकिन तुम क्यों करना चाहते हो? – mgilson

+0

@IsraelCA - लूप समाधान के लिए जोड़ा गया। मैंने इसका परीक्षण नहीं किया है क्योंकि फिलहाल मैं अपने कंप्यूटर पर अजगर के साथ नहीं हूं, लेकिन मुझे लगता है कि इसे काम करना चाहिए। – mgilson

संबंधित मुद्दे

 संबंधित मुद्दे