2011-09-06 5 views
43

असल में, मैं एक स्ट्रिंग को आउटपुट करने के लिए एक सेट में प्रविष्टियों को एक साथ जोड़ने की कोशिश कर रहा हूं। मैं सूचियों के लिए शामिल फ़ंक्शन के समान वाक्यविन्यास का उपयोग करने की कोशिश कर रहा हूं। AttributeError: 'set' object has no attribute 'join'पायथन: सेट में प्रविष्टियों में एक स्ट्रिंग में कैसे शामिल हों?

सेट के लिए बराबर कॉल क्या है:

list = ["gathi-109","itcg-0932","mx1-35316"] 
set_1 = set(list) 
set_2 = set(["mx1-35316"]) 
set_3 = set_1 - set_2 
print set_3.join(", ") 

हालांकि मैं इस त्रुटि मिलती है: यहाँ मेरी प्रयास है?

उत्तर

99
', '.join(set_3) 

join एक स्ट्रिंग विधि, नहीं एक सेट तरीका है।

print ", ".join(set_3) 
+0

धन्यवाद! मैं एक रूबी प्रोग्रामर हूं, इसलिए यह मेरे लिए बिल्कुल नया है। – Spencer

+10

यदि आपके सेट में पूर्णांक/लंबे समय हैं, तो आपको'_3 'का उपयोग करना होगा, .join (str) s में सेट_3 के लिए) – NiCU

2

मुझे लगता है कि आपके पास अभी पीछे है।

print ", ".join(set_3) 
+0

अमान्य वाक्य रचना नहीं? 'प्रिंट (", ".join (set_3))' – surfer190

+1

यह 2.7 में मान्य है। – recursive

4

join स्ट्रिंग पर कहा जाता है आपके चर के लिए। इसे list_, my_list या कुछ अन्य नाम दें क्योंकि list अक्सर पाइथन फ़ंक्शन का उपयोग किया जाता है।

3

न ही set और न ही list ऐसी विधि join, स्ट्रिंग यह है है:

','.join(set(['a','b','c'])) 

जिस तरह से आप नाम list उपयोग नहीं करना चाहिए द्वारा

2

आप बयान पीछे की ओर में शामिल होने की कोशिश की है:

print ', '.join(set_3) 
22

सेट एक join विधि नहीं है, लेकिन आप str.join बजाय उपयोग कर सकते हैं।

', '.join(set_3) 

str.join विधि सूचियों और सेट सहित किसी भी iterable वस्तु पर काम करेंगे।

नोट: पूर्णांक वाले सेट पर इसका उपयोग करने के बारे में सावधान रहें; कॉल में शामिल होने से पहले आपको पूर्णांक को तारों में परिवर्तित करने की आवश्यकता होगी। उदाहरण के लिए

set_4 = {1, 2} 
', '.join(str(s) for s in set_4) 
3

सेट के एक आदेश की जरूरत नहीं है - तो आप अपने आदेश खो सकते हैं जब आप एक सेट में अपनी सूची कनवर्ट करते हैं, अर्थात्:

>>> orderedVars = ['0', '1', '2', '3'] 
>>> setVars = set(orderedVars) 
>>> print setVars 
('4', '2', '3', '1') 

आम तौर पर आदेश रहेगा, लेकिन के लिए बड़े सेट यह लगभग निश्चित रूप से नहीं होगा।

अंत में, बस लोगों को आश्चर्य हो रहा है, आपको शामिल होने में ',' की आवश्यकता नहीं है।

बस: '.join' (सेट)

:)

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