मैं किसी भी डेटा प्रकार को पायथन में स्ट्रिंग में कैसे बदल सकता हूं?
मैं किसी भी डेटा प्रकार को पायथन में स्ट्रिंग में कैसे बदल सकता हूं?
जवाबों:
myvariable = 4
mystring = str(myvariable) # '4'
इसके अलावा, वैकल्पिक रूप से पुन: प्रयास करें:
mystring = repr(myvariable) # '4'
इसे अजगर में "रूपांतरण" कहा जाता है, और यह काफी सामान्य है।
str(u'ä')काम नहीं करेगा। हालांकि repr(u'ä')काम करेंगे।
strऑब्जेक्ट के डेटा के एक स्ट्रिंग प्रतिनिधित्व का उत्पादन करने के लिए है। यदि आप अपनी कक्षा लिख रहे हैं और आप अपने strलिए काम करना चाहते हैं, तो जोड़ें:
def __str__(self):
return "Some descriptive string"
print str(myObj)बुला लेंगे myObj.__str__()।
reprएक समान विधि है, जो आम तौर पर वर्ग की जानकारी के बारे में जानकारी पैदा करती है। अधिकांश मुख्य पुस्तकालय ऑब्जेक्ट के लिए, reprकोण कोष्ठक के बीच वर्ग नाम (और कुछ समय की कुछ जानकारी) का उत्पादन करता है। reprउदाहरण के लिए, केवल आपके ऑब्जेक्ट को आपके इंटरैक्शन फलक में टाइप करके, बिना उपयोग किए printया कुछ और उपयोग किए ।
आप reprअपनी खुद की वस्तुओं के व्यवहार को उसी तरह परिभाषित कर सकते हैं जैसे आप के व्यवहार को परिभाषित कर सकते हैं str:
def __repr__(self):
return "Some descriptive string"
>>> myObjआपके इंटरैक्शन फलक में, या repr(myObj)इसके परिणामस्वरूप होगाmyObj.__repr__()
object.__repr__-स्टाइल कोण-ब्रैकेट प्रतिनिधित्व वापस करते हैं, लेकिन सबसे अधिक उपयोग किए जाने वाले बहुत से नहीं हैं। के लिए अंगूठे का नियम reprहै कि अगर यह समझ में आता है, अजगर कोड है कि एक ही वस्तु का उत्पादन करने का मूल्यांकन किया जा सकता है वापस जाने के लिए है कि, जैसे str, frozenset, और अधिकांश अन्य builtins करते हैं, लेकिन अगर ऐसा नहीं होता, कोण कोष्ठक का उपयोग करें यह सुनिश्चित करने के लिए कि आप जो वापसी करते हैं वह संभवतः मानव-पठनीय और मूल्यांकन योग्य-जैसे-स्रोत के लिए गलत नहीं हो सकता।
listजिसमें खुद में कुछ ऐसा शामिल है जो न केवल दिखता है बल्कि मूल्यांकन योग्य कोड है, जो गलत चीज़ का मूल्यांकन करता है - लेकिन मुख्य देवता ने कभी नहीं लिया है कि उसी के विस्तार के लिए लाइसेंस के रूप में stdlib में व्यवहार करें।)
मुझे लगता है कि सभी उत्तर का उपयोग करने की सलाह देते हैं str(object)। यह विफल हो सकता है यदि आपकी वस्तु में एएससीआई अक्षर अधिक हैं और आपको त्रुटि दिखाई देगी ordinal not in range(128)। यह मेरे लिए मामला था जब मैं अंग्रेजी के अलावा अन्य भाषा में स्ट्रिंग की सूची परिवर्तित कर रहा था
मैंने इसका उपयोग करके हल किया unicode(object)
str(object) चाल चलेगा।
यदि आप ऑब्जेक्ट को कड़ाई से बदलना चाहते हैं, तो __str__(self)ऑब्जेक्ट की कक्षा के लिए विधि को परिभाषित करें । ऐसी विधि से str या यूनिकोड ऑब्जेक्ट को वापस करना होगा।
str(any_var)याany_var.__str__()
timeitमॉड्यूल), आप का उपयोग करना चाहिए str(any_var), क्योंकि यह मामलों से मानव के लिए अधिक पठनीय है और लाभ के लिए अनुमति देता है जब any_varपरिभाषित करता है __repr__(), लेकिन नहीं करता है ' टी को परिभाषित __str__()।
strअंतर्निहित का उपयोग करें :
x = str(something)
उदाहरण:
>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str([])
'[]'
>>> str({})
'{}'
...
प्रलेखन से:
किसी वस्तु की अच्छी तरह से मुद्रण योग्य प्रतिनिधित्व युक्त स्ट्रिंग लौटें। स्ट्रिंग्स के लिए, यह स्ट्रिंग को स्वयं लौटाता है। Repr (object) के साथ अंतर यह है कि str (ऑब्जेक्ट) हमेशा स्ट्रिंग को वापस करने का प्रयास नहीं करता है जो कि eval () के लिए स्वीकार्य है; इसका लक्ष्य एक मुद्रण योग्य स्ट्रिंग वापस करना है। यदि कोई तर्क नहीं दिया जाता है, तो खाली स्ट्रिंग लौटाता है, ''।
के साथ str(x)। हालाँकि, प्रत्येक डेटा प्रकार अपने स्वयं के स्ट्रिंग रूपांतरण को परिभाषित कर सकता है, इसलिए यह वह नहीं हो सकता जो आप चाहते हैं।
बस उपयोग करें str- उदाहरण के लिए:
>>> str([])
'[]'
स्वरूपण का उपयोग करें:
"%s" % (x)
उदाहरण:
x = time.ctime(); str = "%s" % (x); print str
आउटपुट: थू जन ११ 20:40:05 2018
str(var)? यह है कि तुम क्या देख रहे हो?