আমি মূলত সিটিতে এর একটি অজগর সমতুল্য চাই:
int a[x];
তবে অজগরে আমি একটি অ্যারের ঘোষণা করি:
a = []
এবং সমস্যাটি হ'ল আমি এ জাতীয় মান সহ এলোমেলো স্লট বরাদ্দ করতে চাই:
a[4] = 1
তবে অ্যারেটি খালি থাকায় আমি অজগর দিয়ে তা করতে পারি না।
আমি মূলত সিটিতে এর একটি অজগর সমতুল্য চাই:
int a[x];
তবে অজগরে আমি একটি অ্যারের ঘোষণা করি:
a = []
এবং সমস্যাটি হ'ল আমি এ জাতীয় মান সহ এলোমেলো স্লট বরাদ্দ করতে চাই:
a[4] = 1
তবে অ্যারেটি খালি থাকায় আমি অজগর দিয়ে তা করতে পারি না।
উত্তর:
পাইথনে আপনি যা চান ঠিক তেমন করতে পারবেন না (যদি আমি আপনাকে সঠিকভাবে পড়ি)। আপনাকে তালিকার প্রতিটি উপাদানটির জন্য মান রাখতে হবে (বা আপনি এটি অ্যারে বলেছিলেন)।
তবে, এটি চেষ্টা করুন:
a = [0 for x in range(N)] # N = size of list you want
a[i] = 5 # as long as i < N, you're okay
অন্যান্য ধরণের তালিকার জন্য, 0 এর বাইরে কিছু ব্যবহার None
করা প্রায়শই ভাল পছন্দ।
range(N)
পাইথন <3.0 যদি ইতিমধ্যে একটি তালিকা তৈরি করে।
xrange(N)
পাইথন ২.x ব্যবহার করতে পারেন । তবে আমি নিশ্চিত নই যে এটি কীভাবে ভুলের সাথে সীমাবদ্ধ। আমি এটিকে পছন্দ করি a = range(N)
কারণ প্রতিটি উপাদান একটি বুদ্ধিমান "ডিফল্ট" থেকে শুরু হয়। আমার ধারণা এটি মতামতের বিষয়।
আপনি নকল ব্যবহার করতে পারেন:
import numpy as np
খালি অ্যারে থেকে উদাহরণ :
np.empty([2, 2])
array([[ -9.74499359e+001, 6.69583040e-309],
[ 2.13182611e-314, 3.06959433e-309]])
কেবল তালিকাটি ঘোষণা করুন এবং প্রতিটি উপাদান যুক্ত করুন। প্রাক্তন হিসাবে:
a = []
a.append('first item')
a.append('second item')
আপনি যদি (বা এই প্রশ্নের অন্যান্য সন্ধানকারী) প্রকৃতপক্ষে পূর্ণসংখ্যার সাথে পূরণ করার জন্য একটি সংঘবদ্ধ অ্যারে তৈরি করতে আগ্রহী হন তবে বাইটারে এবং স্মৃতিচারণ বিবেচনা করুন :
# cast() is available starting Python 3.3
size = 10**6
ints = memoryview(bytearray(size)).cast('i')
ints.contiguous, ints.itemsize, ints.shape
# (True, 4, (250000,))
ints[0]
# 0
ints[0] = 16
ints[0]
# 16
x=[]
for i in range(0,5):
x.append(i)
print(x[i])
আপনি যদি আসলে একটি সি স্টাইল অ্যারে চান
import array
a = array.array('i', x * [0])
a[3] = 5
try:
[5] = 'a'
except TypeError:
print('integers only allowed')
নোট করুন যে আন-ইনিশিয়ালাইজের কোনও ধারণা নেই পাইথনে ভেরিয়েবলের । একটি ভেরিয়েবল এমন একটি নাম যা মানটির সাথে আবদ্ধ, সুতরাং সেই মানটির অবশ্যই কিছু থাকতে হবে। উপরের উদাহরণে অ্যারের শূন্য দিয়ে শুরু করা হয়।
যাইহোক, অজগরটিতে এটি অস্বাভাবিক, যদি না আপনার নিম্ন স্তরের স্টাফগুলির জন্য প্রয়োজন হয়। বেশিরভাগ ক্ষেত্রে, খালি তালিকা বা খালি নাম্পার অ্যারে ব্যবহার করে আপনি ভাল-বন্ধ হন, অন্য উত্তরগুলির পরামর্শ অনুসারে।
a = [obj] * N
হ'ল অ্যারের প্রতিটি উপাদানগুলিতে একই আপত্তি উপস্থিত হয়। যদি এটি কোনও পরিবর্তনীয় আপত্তি হয় এবং আপনি একটি আইটেম পরিবর্তন করেন তবে সমস্ত পরিবর্তন হয়ে যাবে। ... তবে, উদাহরণস্বরূপ (বা অন্য কোনও অপরিবর্তনীয় টাইপ) ব্যবহার করে, এটি কোনও পার্থক্য করে না। অথবা, আপনি যদি কেবলমাত্র উপাদানগুলিকে বরাদ্দ করেন তবে তা কোনও সমস্যা নয়। (আমি এটি উল্লেখ করেছি কারণ আমি এটি প্রায়শই ঠিক কাজ করেছি :))