2017-05-02 3 views
1

Ich habe einige Daten wie folgt:Einsatz Komma nach jedem Element in der Liste Verständnis Python

stats = {'a':1000, 'b':3000, 'c': 100} 

ich Komma nach jedem Element in einer Liste Verständnis eingefügt werden soll, siehe Beispiel unten:

d = ['a',',','b',',','c',','] 

Wie kann ich das mit einer normalen Liste Verständnis:

finden folgende Beispielcode:

[k + ',' für k, v in stats.iteritems()], scheinen aber nicht die erforderlichen Ergebnisse zu erhalten.

Jede Hilfe wird geschätzt TIA!

+1

und was ist Ihr erwartetes Ergebnis? – RomanPerekhrest

+1

Ist die Bestellung wichtig? –

+2

Ist dies, weil Sie es zu einer Zeichenfolge verketten möchten? Wir haben uns dazu gesellt. – Elmex80s

Antwort

3

Es kann durch die Tasten des Wörterbuchs induziert durch Abflachen Paare erfolgen:

die Schlüssel und Komma und ketten sie
d = [item for key in stats for item in (key, ',')] 

Eine weitere Option ist zip:

d = list(chain(*zip(stats, repeat(',')))) 
+2

Keine Notwendigkeit für die '.keys()' –

+0

@Chris_Rands, Sie sind richtig, bearbeitet. Vielen Dank! – Elisha

0

Wenn Ihr Ziel ist die Elemente in eine Zeichenfolge verketten, könnten Sie str.join:

>>> stats = {'a':1000, 'b':3000, 'c': 100} 
>>> ','.join(stats) 
'a,c,b' 

Wenn Sie wirklich ein Komma möchten, können Sie es hinzufügen:

>>> ','.join(stats) + ',' 
'a,c,b,' 

Beachten Sie, dass Python dicts ungeordnet sind: Sie können nicht sicher sein, dass die Schlüssel als Eingang in der gleichen Reihenfolge kommen. Dafür benötigen Sie eine Liste oder eine OrderedDict.

>>> stats = [('a', 1000), ('b', 3000), ('c', 100)] 
>>> ','.join(key for key,value in stats) 
'a,b,c' 
>>> ','.join(key for key,value in stats) + ',' 
'a,b,c,' 

Wenn aus irgendeinem Grund, die Sie wirklich eine Liste von Zeichen wollen:

>>> list(','.join(key for key,value in stats) + ',') 
['a', ',', 'b', ',', 'c', ','] 

Es wird nur funktionieren, wenn die Schlüssel genau ein Zeichen lang sind. Um die Zeichen in einer Zeichenfolge zu durchlaufen, müssen Sie die Zeichenfolge nicht einmal in eine Liste konvertieren.

Verwandte Themen