2016-03-26 18 views
1

Bir dizede char konumunu değiştirmeye çalışıyorum ama şu ana kadar başarı yok.Bir dizede char konumunu bulup değiştirin

def replace(string, position): 
    p = int(position) 
    s = []  
    for i,c in enumerate(string): 
     s.append(c) 
     if c == '$': 
      s.insert(p,c) 

    return ''.join(s) 

cevap

1

Hala yeni dize sonunda $ işaretleri sona eklendiğini: Örneğin,

string = 'LOLOLOLO$$' 
replace(string,1) 

sonuç için istediğim

'L$$OLOLOOL' 

Benim varolan kodudur. Bu deneyin:

... 
if c == '$': 
    s.insert(p,c) 
else: 
    s.append(c) 
+0

'L $$ OLOLOLO $$' dan bu 'LLOOLLOOLLOOLLOO' ' – Reboot

+0

@NathanDrake Works benim için iyi olur. İlk 's.append (c)' satırını kaldırdığınızdan ve 'else' bloğunun içine taşıdığınızdan emin olun. – Selcuk

+0

kodu şu anda gerçekten iyi görünüyor, ama küçük bir sorun var. sonuç istiyorum 'L $$ OLOLOOL' ama 'L $$ OLOLOLO' alıyorum – Reboot

1

Ben senin soru Pekala, 1 pozisyonundaki '$$' insert ve eski oluşumunu kaldırmak istediğiniz var ise:

def replace(src, newpos, what="$$"): 
    src=src.replace(what, "") #removes ALL occurences of what 
    return src[:newpos]+what+src[newpos:] 

size sonucu verir:

+0

Teşekkür ederiz MrP01 oldu, ancak sadece – Reboot

+0

kodumda iki argüman alıyorum Sadece iki argüman alıyor ama yine de ne istediğini anlamıyorum. Lütfen açık ol. – MrP01

İlgili konular