2012-11-03 13 views
24
LIST = ['Python','problem','whatever'] 
print(LIST) 

जब मैं इस कार्यक्रम को चलाने मैंपायथन में सूची से वर्ग ब्रैकेट को कैसे हटाएं?

[Python, problem, whatever] 

उत्पादन से है कि वर्ग कोष्ठक दूर करने के लिए मिलता है यह संभव है?

+0

मेरा सुझाव है 'map' है LIST के लिए 'str (i) के बजाय' ''' 'आईडी' सी कोड है, इसलिए यह तेज़ है – yedpodtrzitko

+0

सूची समझ पाइथन 2 में मानचित्र से वास्तव में तेज़ है क्योंकि यह एक स्टैक फ्रेम नहीं बनाती है जो कम्प्यूटेशनल रूप से महंगा है। नक्शा इसे बनाता है। लेकिन यह व्यवहार समस्याग्रस्त है कि सूची समझ में परिवर्तनीय रिबाइंडिंग के कारण रिसाव हो सकता है यदि एक ही नाम वाले चर को पहले घोषित किया गया था। पायथन 3 में सूची समझ ऐसी समस्या प्रदर्शित नहीं करती है क्योंकि यह जनरेटर अभिव्यक्तियों के अनुरूप होने के लिए एक स्टैक फ्रेम बनाने के लिए बदल दिया गया है। –

उत्तर

51

इसके बजाय आप सूची मुद्रण सीधे की एक स्ट्रिंग के लिए इसे परिवर्तित कर सकते हैं:

print(", ".join(LIST)) 

, सूची में तत्वों तार नहीं हैं, तो आप या तो repr का उपयोग कर (यदि आप उद्धरण चाहते स्ट्रिंग के लिए उन्हें परिवर्तित कर सकते हैं तार के आसपास) या str (आप ऐसा करेंगे नहीं तो), इसलिए जैसे:

LIST = [1, "foo", 3.5, { "hello": "bye" }] 
print(", ".join(repr(e) for e in LIST)) 

कौन सा उत्पादन देता है:

1, 'foo', 3.5, {'hello': 'bye'} 
+0

धन्यवाद, लेकिन अगर मेरे पास मेरी सूची में संख्याएं हैं तो क्या होगा? –

+1

@ ग्रेगोरगाजीक फिर "," .join (str (i) के लिए LIST में) – bereal

+0

@ ग्रेगोरगाजी: उत्तर अपडेट किया गया। –

18

हां, ऐसा करने के कई तरीके हैं। उदाहरण के लिए, यदि आप एक स्ट्रिंग के लिए सूची में बदल सकते हैं और उसके बाद पहली और आखिरी वर्णों को हटा दें:

l = ['a', 2, 'c'] 
print str(l)[1:-1] 
'a', 2, 'c' 

अपनी सूची केवल तार हैं, तो और तुम भी तो उद्धरण को दूर चाहते हैं आप join विधि का उपयोग कर सकते हैं के रूप में पहले से ही है कहा गया है।

10

यदि आप सूची में संख्या है, तो आप map उपयोग कर सकते हैं प्रत्येक तत्व को str लागू करने के लिए:

print ', '.join(map(str, LIST)) 

^map सी कोड तो यह तेजी से str(i) for i in LIST

5
def listToStringWithoutBrackets(list1): 
    return str(list1).replace('[','').replace(']','') 
संबंधित मुद्दे