पायथन में एक सूची में हर संख्या से एक मूल्य घटाएं?


84

मेरे पास एक सूची है

 a = [49, 51, 53, 56]

सूची में प्रत्येक पूर्णांक मान से मैं 13 कैसे घटाऊं?

जवाबों:


146

एक सूची समझ के साथ :

a = [x - 13 for x in a]

2
def minus13(a):ऊपर लाइन पर रखकर और एक स्तर पर इंडेंट करना।
— इग्नासियो वाज़केज़-अब्राम्स

8
a[:]सिर्फ वापस करने के बजाय lhs पर क्यों a? a[:]सूची की एक प्रति नहीं बनाता है?
— istruble


4
क्या किया जाना चाहिए कि सूची समझ से मूल्य फ़ंक्शन द्वारा वापस किया जाना चाहिए, और कॉलर को उचित होने पर मौजूदा अनुक्रम को बदलने का निर्णय लेना चाहिए।
— इग्नासियो वाज़केज़-अब्राम्स

1
@istruble: बस एक इच्छा के लिए सीधे काम के रूप में अच्छी तरह से काम करेगा। तो a = [x - 13 for x in a]बस के रूप में अच्छी तरह से काम करेंगे, और कम भ्रमित है।
— लेन्नर्ट रेग्रोब

71

यदि आप संख्याओं के साथ काम कर रहे हैं, तो आप NumPy पर एक नज़र डालना चाहते हैं । यह आपको संख्यात्मक सरणियों पर सीधे सभी प्रकार के ऑपरेशन करने देता है। उदाहरण के लिए:

>>> import numpy
>>> array = numpy.array([49, 51, 53, 56])
>>> array - 13
array([36, 38, 40, 43])

1
मैंने एक त्वरित परीक्षण किया और यह मूल सरणी को अछूता छोड़कर एक नया सरणी देता है।
— फ्रैंकोइस

10

आप मानचित्र () फ़ंक्शन का उपयोग कर सकते हैं :

a = list(map(lambda x: x - 13, a))

7
@ Frost.baka पायथन 3 में, मैप मैप ऑब्जेक्ट को रिटर्न करता है। पायथन 2 में, यह सूची देता है।
— स्पुतनिकस

5

टिप्पणियों में प्रश्नों के कारण पहले से ही पोस्ट किए गए समाधान को स्पष्ट करने के लिए

import numpy

array = numpy.array([49, 51, 53, 56])
array = array - 13

उत्पादन होगा:

सरणी ([36, 38, 40, 43])


3

यह काम करेगा:

for i in range(len(a)):
  a[i] -= 13

4
लिस्ट कॉम्प्रिहेंशन सॉल्यूशन ज्यादा पाइथोनिक है। आप उन्हें पसंद कर सकते हैं। docs.python.org/tutorial/…
— istruble

किसने हटाई मेरी टिप्पणी? - मैं लंबाई की गिनती में बिंदु नहीं देख रहा हूँ। एक साधारण गणना करने के लिए।
— jaycodez

2
गिनती आवश्यक है, यदि एल्गोरिदम को इस तरह से व्यक्त किया जाना है, तो सूचकांक चर ( i) के लिए सभी संभव सूचकांक मूल्यों के माध्यम से पुनरावृति करना है। सूची में प्रत्येक तत्व को म्यूट करने के लिए इस सूचकांक चर की आवश्यकता होती है।
— सांता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.