Mein Programm braucht zu lange, um durchzulaufen.
Da die Optimierung meines Codes doch vielverspechend ist, bin ich ihn jetzt mal durchgegangen und habe die ersten Fragen aufgeschrieben:
##########################################################
Ich habe eine Textdatei, deren Inhalt ich in ein set laden will.
In jeder Zeile der Textdatei steht ein Wort; jedes Element des sets soll ein Wort enthalten.
Dazu muss ich die Enter-Zeilen entfernen.
Dies habe ich bis jetzt so gemacht:
Code: Alles auswählen
datei=open(pfad)
a=datei.readlines()
for i in range(len(a)):
a[i] = a[i].replace('\n','')
a=set(a)
##########################################################nächste Frage
Ich habe eine Bilddatei und will in einem 10-mal-10-Pixel-Rechteck dieser Datei für jeden Pixel eine Fallunterscheidung durchführen.
Dies mache ich bis jetzt so:
Code: Alles auswählen
img=Image.open(pfad)
a=list()
y=0
for h in range(10):
x=0
y+=1
for g in range(10):
x+=1
pix=img.getpixel((x,y))
if pix==(0,0,0):
a.append(1)
else:
a.append(0)
BlackJack deutete dann aber eine Möglichkeit an, dies mit der crop()-Methode schneller hinzubekommen.
Weiter als das bin ich aber nicht gekommen:
Code: Alles auswählen
box = (0,0, 10, 10)
b = img.crop(box)
##########################################################nächste Frage
Ich möchte eine rückwärtszählende Schleife erstellen.
Code: Alles auswählen
for i in range(5):
Nun will ich aber die Zahlen 4,3,2,1,0 haben.
Dies habe ich bis jetzt damit gelöst:
Code: Alles auswählen
for i in [4,3,2,1,0]:
Code: Alles auswählen
for i in range(4,0)
Code: Alles auswählen
for i in range(0,4,-1).
Ich verwende sehr oft Schleifen, die dann aber zu kleinen Ungetümen ausarten:
Code: Alles auswählen
a=[[[1,2,9,4],[5,9,7,8],[9,10,11,12]],[[9,10,11,12],[5,6,9,8],[1,2,9,4]]]
b=list()
b1=list()
for i in range(len(a)):
a1=a[i]
for h in range(len(a1)):
a2=a1[h]
for g in range(len(a2)):
if a2[g]==9:
b1.append(g)
break
b.append(b1)
b1=list()
Gibt es irgendwelche Tipps, um solche Verschachtelungen besser zu gestalten?
Mein Hauptproblem ist, dass ich nicht das machen kann:
Code: Alles auswählen
for i in range(len(a)):
for g in range(len(a[i])):
print a[i][g]
Code: Alles auswählen
for i in range(len(a)):
a1=a[i]
for g in range(len(a1)):
print a1[g]
Ich würde mich freuen, wenn ihr mir auch dabei weiterhelfen könntet.
Mit EyDu's Hinweis, dass in einigen Fällen Sets besser als Listen sind, konnte ich mein Programm ja schon extrem verschnellern
Gruß
Paul