[python]array replacen wil maar niet lukken

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

  • yootje
  • Registratie: December 2002
  • Laatst online: 29-09-2025
Ik ben nog een aardige noob, en ik worstel nu al een tijdje met een probleem:

code:
1
2
3
4
bord = ['[1]','[2]','[3]','[4]','[5]','[6]','[7]','[8]','[9]']
for i in bord:
    i.replace('[','boe')
    print i


Maar dit werkt niet. Ik heb allerlei combinaties geprobeerd, niks helpt. Iemand die weet wat het probleem is? Alvast bedankt!

Verwijderd

yootje schreef op maandag 25 september 2006 @ 20:01:
Ik ben nog een aardige noob, en ik worstel nu al een tijdje met een probleem:

code:
1
2
3
4
bord = ['[1]','[2]','[3]','[4]','[5]','[6]','[7]','[8]','[9]']
for i in bord:
    i.replace('[','boe')
    print i


Maar dit werkt niet. Ik heb allerlei combinaties geprobeerd, niks helpt. Iemand die weet wat het probleem is? Alvast bedankt!
Waarom werkt dit niet...? Druk bijv. i eens af, wat voor waarde krijg je dan? Weet niet veel van python, maar hier staat wel een voorbeeldje: http://www.faqs.org/docs/diveintopython/fileinfo_for.html

Je wilt dus de strings "[1]" ... "[9]" opslaan?

Weet niet hoe strings werken in python (met dubbele of enkele quotes).

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 13-02 06:32
Uit een online manual.

code:
1
newdata = string.replace(data, 'USER-NAME', 'Joseph Addison')


Ik gok dat je iets als dit moet gebruiken.
code:
1
i = string.replace(i, '[', 'boe')


Niet getest overigens.

En zoals hierboven al gezegd, erg veel moeite heb je zelf niet gedaan. Door simpelweg i te printen zou je al een hoop moeten opschieten. Stap-voor-stap debuggen, tot waar het fout gaat :)

[ Voor 29% gewijzigd door Stephan11117 op 25-09-2006 20:10 ]


Verwijderd

replace(...)
S.replace (old, new[, count]) -> string

Return a copy of string S with all occurrences of substring
old replaced by new. If the optional argument count is
given, only the first count occurrences are replaced.

Replace produceerd dus een kopie (wat eigenlijk altijd in alle talen het geval is met string operaties. Wat je vergeet is de waarde weer in de array terug te plaatsen

persoonlijk zou ik het zo oplossen in python:
code:
1
2
bord = ['[1]','[2]','[3]','[4]','[5]','[6]','[7]','[8]','[9]']
bord = [i.replace('[', 'boe') for i in bord]

[ Voor 16% gewijzigd door Verwijderd op 25-09-2006 20:16 ]


Verwijderd

En die eerste lijst maak je natuurlijk zo:

Python:
1
bord = ['[%d]' % i for i in range(10)]


List comprehension. Learn to love it :).

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Hoe je strings replacet in Python staat gelukkig heel goed uitgelegd in de vele references die er voor de taal zijn. :) Zoals ik je al eerder gezegd heb (-NMe- in "[Python] Ik zoek een eenvoudig project") verwachten we meer eigen inzet van een topicstarter dan dit. Ik wil je dan ook vriendelijk vragen om Algemene gedragsregels (Netiquette) en Programming Beleid - De "quickstart" eens door te lezen en je daar de volgende keer aan te houden. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.