www.vorwissen.de
Ein Projekt von vorhilfe.de
Das gesammelte Wissen der Vorhilfe
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - leere Elemente aus Liste entfe
leere Elemente aus Liste entfe < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

leere Elemente aus Liste entfe: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:57 Fr 15.04.2011
Autor: pleaselook

Aufgabe
Wie entferne ich leere Elemente aus einer Liste?


Hallo.
Also ich habe mir aus einer Liste mittels StringPattern Elemente ausgesucht die mich interessieren.
Nun erscheinen aber im Ergebniss leere Elemente/Strings.
Z.B.: Mit:
StringCases[ExampleData["Text"][ [All, 2] ], "UNHuman" ~~ __]
bekomme ich:
{{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
{"UNHumanRightsChinese"}, {"UNHumanRightsDanish"},
{"UNHumanRightsDutch"}, {"UNHumanRightsEnglish"},
{"UNHumanRightsEsperanto"}, {"UNHumanRightsFrench"},
{"UNHumanRightsGerman"}, {"UNHumanRightsGreek"},
{"UNHumanRightsHawaiian"}, {"UNHumanRightsIndonesian"},
{"UNHumanRightsIrish"}, {"UNHumanRightsJapanese"},
{"UNHumanRightsKorean"}, {"UNHumanRightsLatin"},
{"UNHumanRightsMaori"}, {"UNHumanRightsRussian"},
{"UNHumanRightsScottishGaelic"}, {"UNHumanRightsSpanish"},
{"UNHumanRightsSwahili"}, {"UNHumanRightsSwedish"}, {}}

Wie kann ich einen Liste bekommen in der die {} nicht mehr stehen?
Geht das auch indem ich mein StringPattern erweitere?

Grüße pleaselook.

        
Bezug
leere Elemente aus Liste entfe: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:39 Fr 15.04.2011
Autor: pleaselook

Ok. mit Flatten[] hab ichs hinbekommen. Gehts trotzdem auch mit StringPattern?

Bezug
        
Bezug
leere Elemente aus Liste entfe: Antwort
Status: (Antwort) fertig Status 
Datum: 12:29 Fr 15.04.2011
Autor: Peter_Pein

Hallo!

Pattern: ja, String: nein.

Die Listenstruktur, die zurückgegeben wird hat ja nichts mit dem Stringinhalt zu tun, sondern spiegelt (rudimentär) die Struktur der Liste, in der gesucht wurde, wider.

Nennen wir mal das Ergebnis von StringCases erg.
Statt des schnellen und einfachen Flatten[erg] kannst Du, falls Du auf der Verwendung von Patternmatching bestehst, auch Replace[erg, {elem___} :> elem, {1, Infinity}] verwenden. Dies ersetzt in geschweifte Klammern eingeschlossene Elemente durch die Elemente selbst (was bei leeren Mengen natürlich zur Löschung von {} führt) und zwar vom ersten (nicht nullten!) Level bis zur maximalen Tiefe der Listenstruktur.

Eine Alternative ist, einen Befehl zu verwenden, der für beliebige Listen gedacht ist und als Testkriterium eine Stringfunktion z verwenden, wie z.B.:
1: Select[ExampleData["Text"][[All, 2]], 
2:  StringPosition[#, "UNHuman", 1] === {{1, 7}} &]


Gruß,
Peter

P.S.: und dann war da noch FixedPoint[Sequence @@@ # &, erg].

Bezug
                
Bezug
leere Elemente aus Liste entfe: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:10 Fr 15.04.2011
Autor: pleaselook

Ok. Danke! Für die Hinweise. Wenn du sagst die Flatten-Methode ist gut, dann lass ich das dabei.

Nettes Wochenende!

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorwissen.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]