2016-04-25 13 views
-1

Ich habe eine Liste mit mehreren Listen im Inneren wie unten:Wie eine Liste in ein Wörterbuch konvertieren

x = [[1,2,3],[3,4,5],[6,7,8]] 

Aber wollen das gleiche in Wörterbuch konvertieren und wie unter dem ersten Element jedes Arrays als Schlüsselwert machen

x = [(1:2,3), 
(3:4,5), 
(6:7,8)] 
+2

Ich änderte "dire ctory "zu" Wörterbuch ". Ich glaube, das hast du gemeint. * Allerdings *, Ihre Ausgabe ist * kein * Wörterbuch. Es sieht aus wie eine Liste von Tupeln (mit ungültiger Syntax) – Andy

+0

Was sollte 1: 2, 3: 4 und 6: 7 sein? – user312016

Antwort

3

würde ich ein Wörterbuch Verständnis verwenden:

{l[0]:l[1:] for l in x} 

Diese Liste kann ein Schleifen durch nd nimmt das erste Element jeder verschachtelten Liste als Schlüssel und den Rest als Wert.

0

Angenommen, Ihre Beschreibung eines Wörterbuchs korrekt ist, und das Codebeispiel Sie oben angezeigt haben, ist falsch:

x = [[1,2,3],[3,4,5],[6,7,8]] 
y = {} 
for i in x: 
    y[i[0]] = i[1:] 
print y 
# {1: [2, 3], 3: [4, 5], 6: [7, 8]} 

Wenn das, was wollten Sie eine Liste von Tupeln war:

tuple([tuple(i) for i in x]) 

Wenn es ein Wörterbuch, das Sie auf Mitgliedschaft prüfen wollten, und das letzte Element zu drucken

if 1 in y: 
    print y[1][-1:] 
else: 
    print 'Not Found' 
+0

Dank für die Antwort es gab mir die genauen am, die ich wollte, aber ich habe noch eine Bedingung in diesen wenn 1 in y dann sollte es drucken 3 bedeutet zweiten Wert seiner Liste sonst nicht gefunden drucken drucken, wie zu tun, dass plz Hilfe –

+0

Sie profitieren von lesen https://docs.python.org/2/tutorial/datastructures.html. Einfach nach Mitgliedschaft suchen und das letzte Element ausdrucken? wenn 1 in y: Druck y [1] [- 1:] anderes: print 'Not Found' – kanghj91

+0

@pradeeppawar, und wenn Sie speziell das zweite Element möchten, verwenden Sie y [1] [2] statt y [1] [- 1]. Wie auch immer, ich habe die Antwort aktualisiert, um dieses Extra-Bit hinzuzufügen, das Sie wollen – kanghj91

Verwandte Themen