एकल पंक्ति में कोष्ठक के बिना प्रिंट सूची


162

मेरे पास पायथन उदाहरण के लिए एक सूची है

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

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

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

के रूप में उत्पादन दे देंगे;

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

यह वह प्रारूप नहीं है जो मैं चाहता हूं इसके बजाय मैं चाहता हूं कि यह ऐसा हो;

Sam, Peter, James, Julian, Ann

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

जवाबों:


242
print(', '.join(names))

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


9
यदि कुछ तत्व namesतार नहीं हैं, तो print(', '.join(map(str,name)))इसके बजाय उपयोग करें ।
बेनामी

78

यहाँ एक सरल है।

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

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


8
में python 2.7.6, यह एक है SyntaxError: invalid syntax
फ्रेड्रिक गॉस

1
@FredrickGauss यदि आप from __future__ import print_functionइसे जोड़ते हैं तो आप अजगर 2 में भी काम करेंगे।
एंथनी Sottile

1
यह सही उत्तर है क्योंकि यह बिना तार के भी काम करता है।
ओटोकन

41

सामान्य समाधान, गैर-तार के सरणियों पर काम करता है:

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

9
यह बताई गई आवश्यकता को पूरा नहीं करता है। बिना उद्धरणों के परिणामी नाम दिखाते हुए ओपी के उदाहरण पर ध्यान दें।
जॉन वाई

1
@SteveBennett आप अपने उत्तर में टुकड़ा करने की क्रिया [1: -1] की व्याख्या कर सकते हैं। मैंने अभी-अभी अजगर सीखना शुरू किया है। धन्यवाद।
चरन

3
str(names)एक स्ट्रिंग उत्पन्न करता है ['Sam', 'Peter'...'Ann']। हम वर्ग कोष्ठक नहीं चाहते हैं, इसलिए दूसरे वर्ण से दूसरे अंतिम वर्ण तक स्लाइस करते हैं।
स्टीव बेनेट 13

22

इनपुट सरणी है पूर्णांक प्रकार तो आप में पहली परिवर्तित सरणी की जरूरत स्ट्रिंग प्रकार सरणी और उसके बाद का उपयोग 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
>>>

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


18

दो जवाब हैं, पहला है 'सेप' सेटिंग का उपयोग

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

दूसरा नीचे है

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


7

','.join(list)सूची में सभी आइटम तार हैं, तो ही काम करेगा। यदि आप संख्याओं की सूची को अल्पविराम से अलग किए गए स्ट्रिंग में बदलना चाहते हैं। इस तरह के रूप a = [1, 2, 3, 4]में '1,2,3,4'तो आप या तो

str(a)[1:-1] # '1, 2, 3, 4'

या

str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'

हालांकि यह किसी भी नेस्टेड सूची को नहीं हटाएगा।

इसे वापस एक सूची में बदलने के लिए

a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]

4

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

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

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

2

प्रिंट (* नाम)

यह अजगर 3 में काम करेगा यदि आप चाहते हैं कि उन्हें अलग-अलग जगह के रूप में मुद्रित किया जाए। यदि आपको कॉमा या कुछ और की जरूरत है तो .join () समाधान के साथ आगे बढ़ें


1

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

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(", ")

आउटपुट:

सैम, पीटर, जेम्स, जूलियन, ऐन


0

निम्न फ़ंक्शन सूची में ले जाएगा और सूचियों के आइटम की एक स्ट्रिंग लौटाएगा। फिर इसका उपयोग लॉगिंग या प्रिंटिंग उद्देश्यों के लिए किया जा सकता है।

def listToString(inList):
    outString = ''
    if len(inList)==1:
        outString = outString+str(inList[0])
    if len(inList)>1:
        outString = outString+str(inList[0])
        for items in inList[1:]:
            outString = outString+', '+str(items)
    return outString

0

पूर्णांक प्रकार की सरणी के लिए, हमें इसे पहले स्ट्रिंग प्रकार में बदलने की आवश्यकता है और ब्रैकेट के बिना स्वच्छ आउटपुट प्राप्त करने के लिए ज्वाइन फ़ंक्शन का उपयोग करने की आवश्यकता है।

    arr = [1, 2, 3, 4, 5]    
    print(', '.join(map(str, arr)))

OUTPUT - 1, 2, 3, 4, 5

स्ट्रिंग प्रकार की सरणी के लिए, हमें सीधे कोष्ठक के बिना स्वच्छ आउटपुट प्राप्त करने के लिए समारोह में शामिल होने की आवश्यकता है।

    arr = ["Ram", "Mohan", "Shyam", "Dilip", "Sohan"]
    print(', '.join(arr)

OUTPUT - राम, मोहन, श्याम, दिलीप, सोहन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.