Verschieben von Einträgen inerhalb einer Liste
Verfasst: Freitag 24. Juni 2005, 13:51
Hallo 
Ich habe vor wenigen Tagen mit dem Programmieren angefange, d.h. ich bin noch blutiger Anfänger.
Ich versuche ein Programm zum verwalten von Todo's zu stricken, komme auch gut voran, aber beim verschieben von Einträgen inerhalb einer Liste hapert es gewaltig! Könnt Ihr mir evtl. weiterhelfen?
Meine Funktion zu diesem Zweck sieht momentan folgendermaßen aus:
Ich hoffe das sind genügend Infos, ich wäre sehr dankbar wenn sich das mal jemand ansieht!
Viele Grüße und vielen Dank im Voraus!
Dennis

Ich habe vor wenigen Tagen mit dem Programmieren angefange, d.h. ich bin noch blutiger Anfänger.
Ich versuche ein Programm zum verwalten von Todo's zu stricken, komme auch gut voran, aber beim verschieben von Einträgen inerhalb einer Liste hapert es gewaltig! Könnt Ihr mir evtl. weiterhelfen?
Meine Funktion zu diesem Zweck sieht momentan folgendermaßen aus:
Code: Alles auswählen
def movEntry(filename):
# Die Liste ist in einer Datei abgespeichert
f = open(filename)
L = f.readlines()
f.close()
for i in range(len(L)):
print ' %s. %s' % (i+1, L[i].strip())
print
while True:
# getChoice liefert einen Integer
movEntry = getChoice('Which entry would you like to move?', 'Please type a number: ')
newEntryPos = getChoice('To which position should the entry be moved?', 'Please type a nu
mber: ')
posDiff = newEntryPos-movEntry
if movEntry <= len(L):
if newEntryPos <= len(L):
if posDiff > 1:
# Copy entry to new position and delete old entry
copy = L.insert(newEntryPos-1, L[movEntry-1])
del L[movEntry]
elif posDiff == 1:
# Swap entries
L[newEntryPos-1], L[movEntry-1] = L[movEntry-1], L[newEntryPos-1]
else:
print 'Old position and new position are identical.'
f = open(filename, 'w')
for entry in L:
f.write(entry)
f.close()
print 'Entry moved.'
return False
else:
print 'You specified an invalid new position, try again!'
else:
print 'You selected an invalid entry, try again!'
Viele Grüße und vielen Dank im Voraus!
Dennis