2016-03-28 4 views

Antwort

1

wie erwähnt durch @Delgan fehlt, es kann getan werden direkt über

d1 = dict(keyval.split(", ") for keyval in a_list) 

ohne die innere Verschachtelung :)

ältere Ansatz, der nicht wirklich richtig waren: -

d = [a.split(',') for a in a_list] 
d1 = {key: val for key,val in d} 

oder

d1 = {key: val for key,val in (a.split(',') for a in a_list)} 
+0

Kann den Downvote nicht verstehen .. Kommentar bei der Abstimmung. –

+1

Sie benötigen kein verschachteltes List/Diction-Verständnis, um das Problem zu lösen. – Delgan

+0

@Delgan bekam es. Danke –

1

Keine Notwendigkeit für ein Wörterbuch Verständnis. Du machst etwas komplexer als es sein muss;).

a_list = ['1, Lastoŭski', '2, Kupala', '3, Kolas'] 
d = {} 
for i in a_list: 
    temp = i.split(', ') 
    d[temp[0]] = temp[1] 

print d 
# returns: {'3': 'Kolas', '2': 'Kupala', '1': 'Lastoŭski'} 

Wenn Sie eine Liste Verständnis benötigen, dann wird dies genügen:

d = dict((key, value) for key, value in [i.split(', ') for i in a_list]) 

Sie nahe waren, aber sie waren Klammern

+0

Danke, aber ich bin 'funktionelle' Möglichkeiten von 'Python' zu stopfen und will es mit' Verständnis' machen –

+5

Sie machen es tatsächlich komplexer, als es sein muss. ^^ ''d = dict (keyval.split (", ") für keyval in a_list)' funktioniert gut. – Delgan

+0

@ Rudzianko Bearbeitet – TerryA

0

Versuchen Sie folgendes:

d = dict(map(str, x.split(',')) for x in a_list) 

Dies würde helfen.

+0

Es ist nicht notwendig, 'map' aufzurufen. :) – Delgan

+0

Warum runter? Wenn Sie downvotieren, weisen Sie bitte darauf hin, warum? – Aditya

+0

Warum nicht, wenn es ein Wörterbuch aus der Liste macht? – Aditya