array sortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
phpogo
User
Beiträge: 6
Registriert: Montag 10. September 2007, 11:05

Mittwoch 12. September 2007, 10:57

Hallo, wie kann ich folgende Liste nach dem Gleichen Element sortieren?

ich habe zum bsp:

['Products\\SMSPlugin', 'Exception\n']
['Products\\SMSPlugin', 'DTMLFile\n']
['Products\\SMSPlugin', 'PageTemplateFile\n']
['Products\\SMSPlugin', 'DEFAULT_READ_PERM, DEFAULT_WRITE_PERM\n']
['Products\\SMSPlugin', 'protect, private\n']
['Products\\SMSPlugin', 'FliwasPlugin\n']
['Products\\SMSPlugin', 'SMS_EMAIL_GATEAWAY_ADDRESS\n']
['Products\\SMSPlugin', 'SMSPlugin\n']
['Products\\PlacelessTranslationService', 'Globals\n']
['Products\\PlacelessTranslationService', 'UserDict\n']
['Products\\PlacelessTranslationService', 'UnicodeType\n']
['Products\\PlacelessTranslationService', 'sys, os\n']
['Products\\PlacelessTranslationService', 'logging\n']
['Products\\PlacelessTranslationService', 'os\n']

wie kann ich alles was zu 'Products\\SMSPlugin' gehört in eine Zeile reihen, dass folgenes erscheint:
['Products\\SMSPlugin', 'Exception, DTMLFile, PageTemapleFile,DEFAULT_READ_Per']
bzw.
['Products\\PlacelessTranslationService', 'Globales,UserDict,UnicodeType, sys]

danke

usw.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 12. September 2007, 11:05

Hallo phpogo!

Darf das Ziel auch ein Dictionary sein?

Code: Alles auswählen

>>> my_list = [
... ['Products\\SMSPlugin', 'Exception\n'],
... ['Products\\SMSPlugin', 'DTMLFile\n'],
... ['Products\\SMSPlugin', 'PageTemplateFile\n'],
... ['Products\\SMSPlugin', 'DEFAULT_READ_PERM, DEFAULT_WRITE_PERM\n'],
... ['Products\\SMSPlugin', 'protect, private\n'],
... ['Products\\SMSPlugin', 'FliwasPlugin\n'],
... ['Products\\SMSPlugin', 'SMS_EMAIL_GATEAWAY_ADDRESS\n'],
... ['Products\\SMSPlugin', 'SMSPlugin\n'],
... ['Products\\PlacelessTranslationService', 'Globals\n'],
... ['Products\\PlacelessTranslationService', 'UserDict\n'],
... ['Products\\PlacelessTranslationService', 'UnicodeType\n'],
... ['Products\\PlacelessTranslationService', 'sys, os\n'],
... ['Products\\PlacelessTranslationService', 'logging\n'],
... ['Products\\PlacelessTranslationService', 'os\n'],
... ]
>>> my_dict = {}
>>> for item in my_list:
...     dest = my_dict.setdefault(item[0], [])
...     dest.append(item[1])
...     
>>> my_dict
{'Products\\PlacelessTranslationService': ['Globals\n', 
'UserDict\n', 'UnicodeType\n', 'sys, os\n', 'logging\n', 'os\n'], 
'Products\\SMSPlugin': ['Exception\n', 'DTMLFile\n', 
'PageTemplateFile\n', 'DEFAULT_READ_PERM, DEFAULT_WRITE_PERM\n', 
'protect, private\n', 'FliwasPlugin\n', 
'SMS_EMAIL_GATEAWAY_ADDRESS\n', 'SMSPlugin\n']}
>>> 
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
phpogo
User
Beiträge: 6
Registriert: Montag 10. September 2007, 11:05

Mittwoch 12. September 2007, 11:20

hi danke man, das funzt ja echt perfekt, wie kann ich jetzt noch die ausgebe machen?

zum beispiel:

-> Products\\SMSPlugin:

- Exception
- DTMLFile
- PageTemplateFile

-> Products\\PlacelessTranslationService:

- Globales
- UserDict

usw.
Wäre super nett.
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Donnerstag 13. September 2007, 16:14

Moin,

du iterierst über die Schlüssel im dict und bei jedem Schlüssel über die zugeordnete Liste.

Gruß,
Manuel
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Donnerstag 13. September 2007, 16:30

Hi,

Code: Alles auswählen

for sK, lV in my_dict.iteritems():
    print "-> %s:\n- %s\n" % (sK, "\n- ".join(lV))
Gruß,
Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Antworten