2016-04-07 14 views
0

Bir önceki değeri bir listedeki bir sonraki değerden çıkarmak ve son olarak bir sözlüğe eklemek.Bir sonraki değeri Python'daki önceki değerden nasıl çıkarılır?

Örnek:

İşte
# 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

Olası yinelenen yapmanız gerekenler (http [Python içinde paralel olarak iki liste arasında yineleme nasıl?]: // stackoverflow. com/questions/1663807/nasıl-it-i-iterate-iki-listeleri-in-paralel-in-python) –

+0

Aynı anda iki liste aynı anda işlemek için bağlantıda belirtildiği gibi 'zip' kullanacaksınız, ama iki yerine Listeler 'l' ve' l [1:] ' –

+0

olacaktır Bir satırda:' nl = [yx için x, y zip (l, l [1:])] ''Son sonuç' 'si milar: 'result = [{k: v} k için v, zip (lst, nl)] –

cevap

0

size

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

Mükemmel. Teşekkürler. – Pradeep

+0

Birisi aşağılamayı açıklayabilir mi? –

İlgili konular