পাইথনের একটি তালিকার প্রতিটি সংখ্যা থেকে একটি মান বিয়োগ?


86

আমার একটা তালিকা আছে

 a = [49, 51, 53, 56]

তালিকার প্রতিটি পূর্ণসংখ্যার মান থেকে 13 টি কীভাবে বিয়োগ করব?

উত্তর:


150

একটি তালিকা বোধগম্যতা সহ :

a = [x - 13 for x in a]

4
def minus13(a):উপরের লাইনটি লাগিয়ে এবং এক স্তরকে ইনডেন্ট করে।
Ignacio Vazquez-Abram

8
কেন a[:]এলএইচএসের পরিবর্তে কেবল পুনরায় নিয়োগের পরিবর্তে a? a[:]তালিকার একটি অনুলিপি তৈরি করে না ?
istruble


4
কী করা উচিত তা হল তালিকা বোঝার থেকে মূল্যটি ফাংশনটির মাধ্যমে ফিরিয়ে দেওয়া উচিত, এবং কলারের পক্ষে উপযুক্ত অনুসারে বিদ্যমান ক্রমটি প্রতিস্থাপন করার সিদ্ধান্ত নেওয়া উচিত।
Ignacio Vazquez-Abram

4
@ অবিয়োগযোগ্য: কেবলমাত্র একটি সরাসরি বরাদ্দ করা ঠিক তেমনি কাজ করবে। সুতরাং a = [x - 13 for x in a]ঠিক পাশাপাশি কাজ করবে, এবং কম বিভ্রান্তিকর।
লেনার্ট রেজেব্রো

71

আপনি যদি সংখ্যার সাথে অনেক বেশি কাজ করে থাকেন তবে আপনি নুমপাইয়ের দিকে নজর দিতে পারেন । এটি আপনাকে সংখ্যার অ্যারেতে সরাসরি সমস্ত ধরণের অপারেশন করতে দেয়। উদাহরণ স্বরূপ:

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

4
আমি একটি দ্রুত পরীক্ষা করেছি এবং এটি আসল অ্যারেটিকে ছোঁয়া রেখে একটি নতুন অ্যারে প্রদান করে।
ফ্রাঙ্কোইস

10

আপনি মানচিত্র () ফাংশন ব্যবহার করতে পারেন :

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

7
পাইথন 3 এ @ ফ্রস্ট.বাকা, মানচিত্র মানচিত্রের অবজেক্টটি দেয়। পাইথন 2-এ, এটি তালিকা ফিরে আসে।
sputnikus

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

আমার মন্তব্য কে মুছে দিয়েছে? - আমি এর দৈর্ঘ্য গণনা করার বিন্দুটি দেখতে পাচ্ছি না। একটি সাধারণ গণনা করা।
জয়কোডেজ

4
গণনা প্রয়োজনীয়, যদি অ্যালগরিদমকে এভাবে প্রকাশ করতে হয় তবে একটি সূচক ভেরিয়েবল ( i) এর জন্য সমস্ত সম্ভাব্য সূচক মানগুলির মধ্যে পুনরাবৃত্তি হয়। তালিকার প্রতিটি উপাদানকে পরিবর্তন করতে এই সূচী পরিবর্তনশীল প্রয়োজন।
সান্টা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.