2016-05-17 4 views
0

Ich habe ein Wörterbuch namens Muncounty- die Schlüssel sind Gemeinde, Landkreis. separted durch ein Komma und der Wert eine PostleitzahlPython Split Dictionary Key bei Komma

muncounty['mun'+','+'county'] = 12345 

Mein Ziel ist es, die Tasten auf dem Komma spaltet die mun und Landkreis zu trennen und nur die mun extrahieren.

Ich habe versucht,

muncounty.keys().split(',') 
  • Ich weiß, das nicht funktioniert, weil Sie nicht die Split-Funktion auf einer Liste verwenden können
+0

'(,)' - O'Really? –

+0

meine schlechte vergessen die Zitate-immer noch nicht – ziggy

+0

Sieht aus wie Sie die Elemente der Listen teilen müssen. Verwenden Sie eine Iteration. – jhinghaus

Antwort

1

Sie benötigen eine Art von Schleifen, z. ein Listenverständnis:

[key.split(',') for key in muncounty.keys()] 
0

Sie sind Frage und Beispielcode ist nicht ganz klar , aber ich denke, was Sie wollen, ist dies:

for key in muncounty.keys(): 
    mun, county = key.split(',') 

Ihr aktueller Code versucht zu erfüllen split auf eine list, die Sie ganz richtig darauf hinweisen, kann nicht getan werden. Was der obige Code macht, wird durch jeden Schlüssel geführt und führt die split einzeln auf ihm aus.

0

Sie könnten Karte und eine Lambda-Funktion verwenden.

di = {'a.b':1} 
map(lambda k: k.split('.'), di.keys()) 
0

[x.split(',')[0] for x in muncounty.keys()]

Aber ich würde empfehlen, Ihre Schlüssel als Tupel (Gemeinde, Kreis) zu speichern.

0

Nun, ausführlicher Modus für die:

muncounty = {} 
muncounty['mun'+','+'county'] = 12345 
muncounty['mun2'+','+'county2'] = 54321 

l = [] 
for i in muncounty: 
    l.append(i) 

muns = [] 

for k in l: 
    muns.append(k.split(',')[0]) 

Aber Geck ... das ist eine wirklich schlechte Art und Weise mun zu speichern/Länder ;-)

+0

Ich erkannte, es ist ein schlechter Weg nach dem Lesen der Antworten der Menschen auf meine Frage lol-warum obwohl? ps im ein paar Monate neu in Python – ziggy

+0

Weil Sie alle dict und Split-Strings in jeder Iteration Schleife müssen. Dies ist nicht eskalierbar. Was willst du wirklich machen? :-) –

+0

Ich aktualisiere 1.csv Adresslayer mit Gemeinden und keine Postleitzahlen. von einem 2. CSV mit nur County, Gemeinden und Zips. Also bin ich durch die 2. csv Extrahieren dieser Info dann Looping durch die 1. Adresse csv und passend die Gemeinden und Hinzufügen der Reißverschlüsse es – ziggy