2012-02-16 12 views
60

यदि मेरे पास list=[1,2,3] है और मैं आउटपुट [2,3,4], प्राप्त करने के लिए प्रत्येक तत्व में 1 जोड़ना चाहता हूं, तो मैं यह कैसे करूँगा?सूची में प्रत्येक तत्व को पूर्णांक कैसे जोड़ें?

मुझे लगता है कि मैं लूप का उपयोग करूंगा लेकिन यह सुनिश्चित नहीं करता कि वास्तव में कैसे।

उत्तर

77
new_list = [x+1 for x in my_list] 
+3

क्यों नहीं 'में lst ई के लिए करता है इस प्रकार है Numpy वहाँ एक और तरीका है? –

+6

यह बात बताती है: पाइथन नाम और मानों के बारे में तथ्य और मिथक: http://nedbatchelder.com/text/names1.html –

+0

√ बहुत बढ़िया जानकारी। आई खोलना –

12

सूची समझ पर अन्य उत्तरों शायद साधारण जोड़ के लिए सबसे अच्छी शर्त हैं, लेकिन यदि आपके पास एक और जटिल कार्य है जिसे आपको सभी तत्वों पर लागू करने की आवश्यकता है तो map एक अच्छा फिट हो सकता है।

अपने उदाहरण में यह होगा:

>>> map(lambda x:x+1, [1,2,3]) 
[2,3,4] 
+3

'मानचित्र (1 .__ add__, ...) 'भी काम करता है। ध्यान दें कि पार्सर को यह सोचने के लिए कि आपको एक फ्लोट –

4

अजगर 2 +:

>>> mylist = [1,2,3] 
>>> map(lambda x: x + 1, mylist) 
[2, 3, 4] 

अजगर 3+:

>>> mylist = [1,2,3] 
>>> list(map(lambda x: x + 1, mylist)) 
[2, 3, 4] 
2

सबसे पहले शब्द 'सूची' का उपयोग नहीं करते आपके चर के लिए। यह कीवर्ड list छाया करता है।

>>> _list=[1,2,3] 
>>> _list[:]=[i+1 for i in _list] 
>>> _list 
[2, 3, 4] 
+2

है, मौजूदा सूची को बदलने के लिए यह अच्छा है, लेकिन यह अभी भी एक नया उत्पादन करता है, आपको '1' और' .' के बीच की जगह चाहिए। क्या यह अनियंत्रित सूची निर्माण से बचने के लिए किसी जनरेटर का उपयोग करने के लिए असुरक्षित है? आईई, '_list [:] = (i + 1 में मैं _list में) '। – Alan

+0

@Alan अच्छा बिंदु - जेनरेटर –

6
>>> [x.__add__(1) for x in [1, 3, 5]] 
3: [2, 4, 6] 

मेरे यहाँ इरादा बेनकाब करने के लिए करता है, तो सूची में आइटम एक पूर्णांक इसका समर्थन करता है:

सबसे अच्छा तरीका है एक जोड़ अर्थ स्प्लिसिंग का उपयोग कर जगह में यह करने के लिए, [:] ध्यान दें विभिन्न अंतर्निहित कार्यों। ई + = 1` काम:

+1

का उपयोग करना चाहिए समझदारी जादू में खोने के लिए हमारे लिए अच्छा अनुस्मारक। – npit

3

आप उपयोग करना चाहते हैं के रूप में

import numpy as np 
list1 = [1,2,3] 
list1 = list(np.asarray(list1) + 1) 
संबंधित मुद्दे