2016-04-07 9 views
0

Ich möchte den vorherigen Wert vom nächsten Wert in einer Liste subtrahieren und schließlich den out put in ein Wörterbuch einfügen.Wie subtrahiert man den nächsten Wert vom vorherigen Wert in Python?

Beispiel:

# Original List 
l= [1, 10, 25, 35, 55, 100] 
# Expected Out put 
nl = [9, 15, 10, 20, 45] 
# another list 
lst = ['col1', 'col2', 'col3', 'col4', 'col5'] 
# final result 
result = [{'col1': 9}, {'col2': 15}, {'col3': 10}, {'col4': 20}, {'col5': 45}] 
+0

Mögliche Duplikat (http tun müssen [Wie kann ich durch zwei Listen parallel in Python iterieren?]: // Stackoverflow. com/questions/1663807/how-can-ich-iterate-through-two-lists-in-parallel-in-python) –

+0

Sie verwenden 'zip' wie in Link angegeben, um beide Listen gleichzeitig, aber statt zwei zu verarbeiten Listen Sie haben 'l' und' l [1:] ' –

+0

In einer Zeile:' nl = [yx für x, y in zip (l, l [1:])] 'Das 'Endergebnis' ist si milar: 'result = [{k: v} für k, v in zip (lst, nl)] –

Antwort

0

Hier ist, was Sie

l= [1, 10, 25, 35, 55, 100] 
nl = [(n-l[i-1]) if i else n for i,n in enumerate(l)] 
lst = ['col1', 'col2', 'col3', 'col4', 'col5'] 
final = dict(zip(lst, nl)) 
Out[460]: {'col1': 1, 'col2': 9, 'col3': 15, 'col4': 10, 'col5': 20} 
+0

Perfekt. Vielen Dank. – Pradeep

+0

Kann jemand den Downvote erklären? –

Verwandte Themen