Seite 1 von 1

Sortierte Ausgabe ("BLOCK LISTE")

Verfasst: Dienstag 16. August 2005, 09:55
von Fabian
Zuerst ein "HALLO" an alle hier ;-).. Ich hab direkt eine Frage! :roll:

Code: Alles auswählen

>>> print configs
['CONFIG1.cfg', 'CONFIG2.cfg', 'CONFIG3.cfg', 'CONFIG4.cfg', 'CONFIG5.cfg', 'CONFIG6.cfg', 'CONFIG7.cfg', 'CONFIG8.cfg', 'CONFIG9.cfg']
>>> for i in range(len(configs)):
... 	print i, configs[i]
... 	
0 CONFIG1.cfg
1 CONFIG2.cfg
2 CONFIG3.cfg
3 CONFIG4.cfg
4 CONFIG5.cfg
5 CONFIG6.cfg
6 CONFIG7.cfg
7 CONFIG8.cfg
8 CONFIG9.cfg
Das klappt ja schon ohne Probleme. Doch was mir nun ein Rätsel ist, wie geb ich diese Liste folgendermaßen aus?

0 CONFIG1.cfg 1 CONFIG2.cfg 2 CONFIG3.cfg 3 CONFIG4.cfg
4 CONFIG5.cfg 5 CONFIG6.cfg 6 CONFIG7.cfg 7 CONFIG8.cfg
8 CONFIG9.cfg

Ich hab einfach weiß einfach nicht, wie ich immer vier ein eine Reihe ausgebe.

Bitte um hilfe.

Danke! :)

Verfasst: Dienstag 16. August 2005, 10:12
von CM
Hoi Fabian,

Ist das was Du suchts?

Code: Alles auswählen

import sys

configs = ['CONFIG1.cfg', 'CONFIG2.cfg', 'CONFIG3.cfg', 'CONFIG4.cfg', 'CONFIG5.cfg', 'CONFIG6.cfg', 'CONFIG7.cfg', 'CONFIG8.cfg', 'CONFIG9.cfg']
 
for i in range(len(configs)):
	if (i % 4) or (i == 0):
		sys.stdout.write("%d %s " % (i, configs[i]))
	else:
		sys.stdout.write("\n%d %s " % (i, configs[i]))
print
Das geht womöglich noch einfacher, aber Du solltest erst einmal dies verstehen. Bei Verständnisproblemen, kannst Du ja nochmal nachfragen.

Gruß,
Christian

Verfasst: Dienstag 16. August 2005, 10:25
von Fabian
Genau das ist es! Danke!

Das einzige was ich nicht verstehe, wieso machst du das mit sys.stdout.write - und nicht mit print?
[/code]

Verfasst: Dienstag 16. August 2005, 10:38
von mawe
Hi!

Andere Version:

Code: Alles auswählen

>>> configs = ['CONFIG1.cfg', 'CONFIG2.cfg', 'CONFIG3.cfg', 'CONFIG4.cfg', 'CONFIG5.cfg', 'CONFIG6.cfg', 'CONFIG7.cfg', 'CONFIG8.cfg', 'CONFIG9.cfg'] >>> for i,c in enumerate(configs):
...     if i and i%4==0: print
...     print "%i %s" % (i,c),
...
0 CONFIG1.cfg 1 CONFIG2.cfg 2 CONFIG3.cfg 3 CONFIG4.cfg
4 CONFIG5.cfg 5 CONFIG6.cfg 6 CONFIG7.cfg 7 CONFIG8.cfg
8 CONFIG9.cfg
Gruß, mawe

Verfasst: Dienstag 16. August 2005, 10:41
von CM
Fabian hat geschrieben: Das einzige was ich nicht verstehe, wieso machst du das mit sys.stdout.write - und nicht mit print?
Macht der Gewohnheit*. Nimm mawes Version, korrigiere die Formatierung und viel Spaß! Achte aber auf das zusätzliche Komma in mawes Code - dieses unterdrückt den Zeilenumbruch.

Gruß,
Christian

* Und weil sys.stdout ein bißchen mehr bietet, aber das ist hier nicht von Belang.

Verfasst: Dienstag 16. August 2005, 10:49
von Fabian
CM hat geschrieben:Achte aber auf das zusätzliche Komma in mawes Code - dieses unterdrückt den Zeilenumbruch.
Wieder was gelernt, so langsam mag ich Python ;-).

Danke mawe & cm!

Verfasst: Dienstag 16. August 2005, 11:43
von jens
Der Unterschied zwischen dem print mit Komma und dem sys.stdout.write() ist allerdings, das beim print noch ein Leerzeichen eingefügt wird!