2013-01-07 9 views
21

मैं एक स्ट्रिंग उस में दो "0" (एसटीआर) है कि है और मैं सूचकांक 4निकालें चार - अजगर

मैं बुला की कोशिश की है पर केवल "0" (एसटीआर) निकालना चाहते हैं। प्रतिस्थापित करें लेकिन जाहिर है कि सभी "0" को हटा देता है, और मुझे ऐसा कोई फ़ंक्शन नहीं मिल रहा है जो मेरे लिए स्थिति 4 पर चार को हटा देगा।

किसी के पास मेरे लिए कोई इशारा है?

उत्तर

35

उपयोग टुकड़ा करने की क्रिया, स्ट्रिंग शून्य सूचकांक आप निकालना चाहते हैं के पुनर्निर्माण:

newstr = oldstr[:4] + oldstr[5:] 
+0

यही वह है जो मैंने उपयोग किया और यह पूरी तरह से काम किया! – tgunn

12

एक sidenote के रूप में, replace सब शून्य स्थानांतरित करने के लिए नहीं है।

'asd0asd0'.replace('0','',1) 

आउट:

'asdasd0'

+3

क्या होगा यदि आप केवल '0' को इंडेक्स' 7' पर प्रतिस्थापित करना चाहते हैं? –

1

स्लाइसिंग काम करता है (और पसंदीदा तरीका है), लेकिन सिर्फ एक विकल्प है, तो अधिक आपरेशन की जरूरत है तुम सिर्फ निकालना चाहते हैं तो पहले count 1 करने के लिए निर्दिष्ट (लेकिन फिर एक सूची को बदलने वैसे भी चोट नहीं):

>>> a = '123456789' 
>>> b = bytearray(a) 
>>> del b[3] 
>>> b 
bytearray(b'12356789') 
>>> str(b) 
'12356789' 
3

एक अन्य विकल्प सूची समझ का उपयोग करने और शामिल हो:

''.join([_str[i] for i in xrange(len(_str)) if i != 4]) 
संबंधित मुद्दे