2012-11-06 17 views
9

पायथन में, मैं सूचियों की सूची से "कॉलम" कैसे हटा सकता हूं?
को देखते हुए:पायथन में, मैं सूची सूची (कॉलम डिलीट) की सूची से एनएच सूची आइटम कैसे हटा सकता हूं?

L = [ 
    ["a","b","C","d"], 
    [ 1, 2, 3, 4 ], 
    ["w","x","y","z"] 
    ] 

मैं "कॉलम" मिटा देना चाहते हैं 2 पाने के लिए:

L = [ 
    ["a","b","d"], 
    [ 1, 2, 4 ], 
    ["w","x","z"] 
    ] 

वहाँ एक टुकड़ा या डेल विधि है कि क्या करेंगे कि है? कुछ ऐसा:

del L[:][2] 

उत्तर

7

आप पाश कर सकते हैं।

for x in L: 
    del x[2] 

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

6

बस उस सूची के माध्यम से पुन: प्रयास करें और उस अनुक्रमणिका को हटाएं जिसे आप हटाना चाहते हैं।

उदाहरण के लिए

for sublist in list: 
    del sublist[index] 
+0

यह एक सबसे अच्छा –

+0

है यह समाधान धीमा है – user3085931

+0

क्या आप कृपया मुझे बता सकते हैं कि इस समस्या के लिए सबसे अच्छा समाधान क्या है :) – Myjab

0

आप नई सूची बनाने पर कोई आपत्ति नहीं है, तो आप यह कर सकते:

filter_col = lambda lVals, iCol: [[x for i,x in enumerate(row) if i!=iCol] for row in lVals] 

filter_out(L, 2) 
0

यह जो कुछ भी स्तंभ आप चाहते हैं दूर करने के लिए एक बहुत ही आसान तरीका है।

L = [ 
["a","b","C","d"], 
[ 1, 2, 3, 4 ], 
["w","x","y","z"] 
] 
temp = [[x[0],x[1],x[3]] for x in L] #x[column that you do not want to remove] 
print temp 
O/P->[['a', 'b', 'd'], [1, 2, 4], ['w', 'x', 'z']] 
3

एक थोड़ा मुड़ संस्करण -

index = 2 #Delete column 2 
[ (x[0:index] + x[index+1:]) for x in L] 
0
[(x[0], x[1], x[3]) for x in L] 

यह ठीक काम करता है।

1
 L= [['a', 'b', 'C', 'd'], [1, 2, 3, 4], ['w', 'x', 'y', 'z']] 

     _=[i.remove(i[2])for i in L] 
+0

इस तथ्य के अलावा कि इसके साइड इफेक्ट्स के लिए एक सूची कॉम्पैक्ट का उपयोग आम तौर पर किया जाता है, यह तब तक काम नहीं करेगा जब तक कि आप जिस तत्व को हटा रहे हैं वह सूची में सबसे पहले नहीं होता है। उदाहरण के लिए, यदि उपन्यासकारों में से एक [1,2,1,3] है, तो 'निकालें' '2,2,3]' '[1,1,3]' वापस नहीं आएगा। – DSM

2

आप एक सूची समझ के साथ यह कर सकते हैं:

>>> removed = [ l.pop(2) for l in L ] 
>>> print L 
[['a', 'b', 'd'], [1, 2, 4], ['w', 'x', 'z']] 
>>> print removed 
['d', 4, 'z'] 

यह सूची लूप और 2.

आप मिल गया है हटा दिया तत्वों की सूची और मुख्य सूची की स्थिति में हर तत्व पॉप इन तत्वों के बिना।

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