2012-11-20 11 views
6

मैं एक मैट्रिक्स आयात कर रहा हूं, पहली पंक्ति को चाबियों में बदल रहा हूं, और शेष पंक्तियों को मूल्यों में बदल रहा हूं। मैं प्रत्येक मान के साथ चाबियाँ ज़िप करना चाहता हूं और उन्हें एक शब्दकोश में डाल देना चाहता हूं।मैं पाइथन में अपनी सूचियों में व्यक्तिगत मानों के साथ कुंजी कैसे ज़िप करूं?

पूर्व:

अगर मैं निम्नलिखित है:

मैं वी (V में एक्स के लिए) में प्रत्येक मान ले जाना चाहते हैं और उन्हें ज़िप (कश्मीर और एक्स) फिर एक शब्दकोश में बदलने का ।

फिर मैं शब्दकोशों की सूची में शब्दकोश जोड़ूंगा।

अंत में मैं होना चाहिए:

dicts = [{'a':1, 'b':2}, {'a':3, 'b':4}] 

अभी, मैं सिर्फ अपने कुंजी के साथ मेरी पंक्तियों ज़िप करने कर रहा हूँ। मैं यह कैसे तय करुं?

matrix_filename = raw_input("Enter the matrix filename: ") 
matrix = [i.strip().split() for i in open(matrix_filename).readlines()] 
keys = matrix[0] 
vals= (matrix[1:]) 
N=len(vals) 

dicts = [] 

for i in range(1,N): 
    for j in range(1,N): 
     vals[i-1][j-1] = int(matrix[i][j]) 
     dicts = dict(zip(keys,vals)) 

उत्तर

3

itertools.cycle() का उपयोग कर:

In [51]: from itertools import * 

In [52]: cyc=cycle(k) 

In [53]: [{next(cyc):y for y in x} for x in v] 
Out[53]: [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}] 
12
>>> [dict(zip(k, x)) for x in v] 
[{'a': 1, 'b': 2}, {'a': 3, 'b': 4}] 
+2

+1 तुम सिर्फ एक लाइन में यह मिल गया, क्या मुझे पाश के लिए एक नेस्टेड ले लिया। :( –

+0

क्या आपको प्यार नहीं है कि एक बार जब आप अपने उपकरण जानते हैं तो पाइथन में करना कितना आसान है? –

संबंधित मुद्दे