2012-06-24 12 views
65

मेरे पास पाइथन उदा।एक पंक्ति में ब्रैकेट के बिना प्रिंट सूची

names = ["Sam", "Peter", "James", "Julian", "Ann"] 

मैं सामान्य के बिना एक पंक्ति में सरणी प्रिंट करना चाहते हैं "[]

names = ["Sam", "Peter", "James", "Julian", "Ann"] 
print (names) 

के रूप में उत्पादन देगा; प्रारूप मैं चाहता हूँ नहीं है यही कारण है कि

["Sam", "Peter", "James", "Julian", "Ann"] 

इसके बजाय मैं इसे इस तरह बनना चाहता हूं;

Sam, Peter, James, Julian, Ann 

नोट: यह एक पंक्ति में होना चाहिए।

उत्तर

107
print ', '.join(names) 

यह, जैसा कि नाम, बस सूची के सभी तत्वों को लेता है और उन्हें ', ' साथ जुड़ जाता है।

+1

>>> नाम = [ "सैम", "पीटर", "जेम्स" , "जूलियन", "एन"] >>> प्रिंट ','।शामिल हों (नाम) सिंटेक्स त्रुटि: अमान्य वाक्यविन्यास यह काम नहीं करता है "FatalError" – Isuru

+10

@IsuruMalakaSamarasinha यदि यह अजगर 3 है, तो स्वाभाविक रूप से आपको प्रिंट * फ़ंक्शन * (यह पायथन 2 में एक कीवर्ड) कॉल करने की आवश्यकता होगी, यानी ' प्रिंट (',' .join (नाम)) '। – FatalError

+0

शब्दकोश के साथ इसे कैसे करें? –

8

यह, क्या आप

", ".join(names) 
+0

यह परिणाम उद्धरण में लपेटता है। –

24

जनरल समाधान की जरूरत है गैर तार की सरणियों पर काम करता है:

>>> print str(names)[1:-1] 
'Sam', 'Peter', 'James', 'Julian', 'Ann' 
+0

स्पष्ट रूप से ऐसा करने के एक से अधिक तरीके हैं। – Max

+8

यह निर्दिष्ट आवश्यकता को पूरा नहीं करता है। ओपी का उदाहरण उद्धरण के बिना परिणामी नाम दिखा रहा है। –

+0

अच्छा बिंदु। (...) –

3

आप सूची के माध्यम से लूप करने की जरूरत है और end=" " का उपयोग एक पंक्ति में इसे रखने के लिए

names = ["Sam", "Peter", "James", "Julian", "Ann"] 
    index=0 
    for name in names: 
     print(names[index], end=", ") 
     index += 1 
+0

ओपी का कहना है कि यह एक पंक्ति में होना चाहिए। – Ali

23

यहां एक आसान है।

names = ["Sam", "Peter", "James", "Julian", "Ann"] 
print(*names) 

स्टार सूची को अनपैक करता है और सूची में प्रत्येक तत्व को वापस करता है।

+5

'पायथन 2.7.6' में, यह एक 'सिंटेक्स त्रुटि: अमान्य वाक्यविन्यास' है। –

+1

यह तत्वों के बीच अल्पविराम नहीं डालता है। –

+4

बस अतिरिक्त पैरामीटर सीईपी जोड़ें: प्रिंट (* नाम, सीपी = ',') –

0

अगर यह दूसरों के रूप में कुशल है, लेकिन सरल तर्क हमेशा काम करता है मैं नहीं जानता:

import sys 
name = ["Sam", "Peter", "James", "Julian", "Ann"] 
for i in range(0, len(names)): 
    sys.stdout.write(names[i]) 
    if i != len(names)-1: 
     sys.stdout.write(", ") 

आउटपुट:

Sam, Peter, James, Julian, Ann

10

इनपुट सरणी पूर्णांक प्रकार है तो आप की जरूरत है पहले स्ट्रिंग प्रकार सरणी में सरणी को परिवर्तित करें और फिर या स्थान के साथ जुड़ने के लिए join विधि का उपयोग करें जो तुम्हे चाहिये। उदाहरण:

>>> arr = [1, 2, 4, 3] 
>>> print(", " . join(arr)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: sequence item 0: expected string, int found 
>>> sarr = [str(a) for a in arr] 
>>> print(", " . join(sarr)) 
1, 2, 4, 3 
>>> 

पूर्णांक और स्ट्रिंग में शामिल होने वाले डायरेक्ट का उपयोग करके डायरेक्ट शो ऊपर दिखाए गए त्रुटि को फेंक देगा।

+0

शब्दकोश –

6

दो जवाब नहीं है, सबसे पहले उपयोग 'सितम्बर' की स्थापना है

>>> print(*names, sep = ', ') 

अन्य नीचे है

>>> print(', '.join(names)) 
+0

के साथ इसे कैसे करें यह सबसे परिपक्व समाधान है। –

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