উত্তর:
ব্যবহার range
। পাইথন ২.x এ এটি একটি তালিকা দেয় যাতে আপনার যা প্রয়োজন তা হ'ল:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
পাইথন 3.x range
এ একটি পুনরাবৃত্তি হয়। সুতরাং, আপনাকে এটিকে একটি তালিকায় রূপান্তর করতে হবে:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
দ্রষ্টব্য : দ্বিতীয় সংখ্যাটি একচেটিয়া। সুতরাং, এখানে এটি 16+1
= হওয়া দরকার17
সম্পাদনা করুন:
বর্ধিতকরণ সম্পর্কে প্রশ্নের জবাব দিতে 0.5
, সবচেয়ে সহজ বিকল্পটি হ'ল নম্পটি ব্যবহার করা arange()
এবং .tolist()
:
>>> import numpy as np
>>> np.arange(11, 17, 0.5).tolist()
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
step
প্যারামিটার দিয়ে 1 টিরও বেশি বৃদ্ধি করতে পারেন তবে এটি এখনও একটি অন্তর্নিহিত - ভাসা নয়। আপনি স্ট্যান্ডার্ড লিবেতে ঠিক এটি করতে পারবেন না।
আপনি খুঁজছেন বলে মনে হচ্ছে range()
:
>>> x1=11
>>> x2=16
>>> range(x1, x2+1)
[11, 12, 13, 14, 15, 16]
>>> list1 = range(x1, x2+1)
>>> list1
[11, 12, 13, 14, 15, 16]
0.5
পরিবর্তে বাড়ানোর জন্য 1
, বলুন:
>>> list2 = [x*0.5 for x in range(2*x1, 2*x2+1)]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
list
ভেরিয়েবল হিসাবে ব্যবহার করেন।
list
একটি অন্তর্নির্মিত শ্রেণি, সুতরাং ভেরিয়েবল হিসাবে এর ব্যবহার কিছুটা নিরুৎসাহিত
চেষ্টা করুন:
range(x1,x2+1)
এটি পাইথন ২.x এর একটি তালিকা এবং পাইথন ৩.x-এর তালিকার মতো আচরণ করে mostly যদি আপনি পাইথন 3 চালাচ্ছেন এবং এমন কোনও তালিকার দরকার যা আপনি সংশোধন করতে পারেন তবে ব্যবহার করুন:
list(range(x1,x2+1))
আপনি যদি ফাংশনের মতো পরিসীমা খুঁজছেন যা ভাসমান প্রকারের জন্য কাজ করে, তবে এখানে একটি খুব ভাল নিবন্ধ ।
def frange(start, stop, step=1.0):
''' "range()" like function which accept float type'''
i = start
while i < stop:
yield i
i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time.
# This will save memory.
for i in frange(1.0, 2.0, 0.5):
print i # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list(frange(1.0, 10.0, 0.5))
আউটপুট:
1.0
1.5
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5]
পাইথনে তালিকা বোঝার ব্যবহার করুন। যেহেতু আপনি তালিকায় 16 টিও চান .. x2 + 1 ব্যবহার করুন। পরিসীমা ফাংশন ফাংশনের উচ্চতর সীমা বাদ দেয়।
তালিকা = [এক্স এক্সের জন্য রেঞ্জের (x1, x2 + 1)]
range()
কোনও তালিকা বোঝার প্রয়োজন হয় না
list(range(x1, x2+1))
।
অজগর আপনি খুব eaisly এটি করতে পারেন
start=0
end=10
arr=list(range(start,end+1))
output: arr=[0,1,2,3,4,5,6,7,8,9,10]
অথবা আপনি একটি পুনরাবৃত্ত ফাংশন তৈরি করতে পারেন যা একটি প্রদত্ত সংখ্যা পর্যন্ত অ্যারে প্রদান করে:
ar=[]
def diff(start,end):
if start==end:
d.append(end)
return ar
else:
ar.append(end)
return diff(start-1,end)
আউটপুট: আর = [10,9,8,7,6,5,4,3,2,1,0]
এটি করার সর্বাধিক মার্জিত উপায় হ'ল range
ফাংশনটি ব্যবহার করে তবে আপনি যদি এই যুক্তিটি পুনরায় তৈরি করতে চান তবে আপনি এই জাতীয় কিছু করতে পারেন:
def custom_range(*args):
s = slice(*args)
start, stop, step = s.start, s.stop, s.step
if 0 == step:
raise ValueError("range() arg 3 must not be zero")
i = start
while i < stop if step > 0 else i > stop:
yield i
i += step
>>> [x for x in custom_range(10, 3, -1)]
এটি আউটপুট উত্পাদন করে:
[10, 9, 8, 7, 6, 5, 4]
হিসাবে @Jared করার আগে প্রকাশ সবচেয়ে ভালো উপায় ব্যবহার করা range
বা numpy.arrange
অবশ্য আমি খুঁজে কোড আকর্ষণীয় ভাগ করা।
[x for x in range(10, 3, 1)]
- প্রথম যুক্তিটি হ'ল শুরু, দ্বিতীয় প্রান্ত এবং শেষ পদক্ষেপ। ==> থামুন> শুরু করুন
উপরের প্রতিটি উত্তরের পরিসীমাটি ধনাত্মক সংখ্যারই অনুমান করে। Consecচ্ছিক পদক্ষেপের মান সেট করার সম্ভাবনা (ডিফল্ট = 1) সহ একটানা সংখ্যার তালিকার ফিরে আসার সমাধান এখানে যুক্তিগুলি যে কোনও (ধনাত্মক বা নেতিবাচক) হতে পারে।
def any_number_range(a,b,s=1):
""" Generate consecutive values list between two numbers with optional step (default=1)."""
if (a == b):
return a
else:
mx = max(a,b)
mn = min(a,b)
result = []
# inclusive upper limit. If not needed, delete '+1' in the line below
while(mn < mx + 1):
# if step is positive we go from min to max
if s > 0:
result.append(mn)
mn += s
# if step is negative we go from max to min
if s < 0:
result.append(mx)
mx += s
return result
উদাহরণস্বরূপ, স্ট্যান্ডার্ড কমান্ড list(range(1,-3))
খালি তালিকা ফিরিয়ে দেয় []
, যখন এই ফাংশনটি ফিরে আসবে[-3,-2,-1,0,1]
আপডেট : এখন পদক্ষেপ নেতিবাচক হতে পারে। মিচেল তার মন্তব্যের জন্য ধন্যবাদ।
i_min = -3, i_max = 1
any_number_range(i_max, i_min))
ফিরে আসে[-3,-2,-1,0,1]
তবে বিল্টিন list(range(i_min, i_max + 1))
একই মানগুলি ফিরিয়ে দেবে।
list(range(1,-3, -1))