আমার এমন কোড দরকার যে যদি একটি নির্দিষ্ট তালিকা সূচক উপস্থিত থাকে তবে একটি ফাংশন চালান।
এটি ট্রাই ব্লকের সঠিক ব্যবহার :
ar=[1,2,3]
try:
t=ar[5]
except IndexError:
print('sorry, no 5')
# Note: this only is a valid test in this context
# with absolute (ie, positive) index
# a relative index is only showing you that a value can be returned
# from that relative index from the end of the list...
তবে সংজ্ঞা অনুসারে পাইথন তালিকার মধ্যে থাকা সমস্ত আইটেমের মধ্যে 0এবং len(the_list)-1উপস্থিত রয়েছে (যেমন, চেষ্টা করার দরকার নেই, যদি না জানেন তবে0 <= index < len(the_list) )।
আপনি যদি 0 এবং শেষ উপাদানটির মধ্যে সূচকগুলি চান তবে আপনি গণনা ব্যবহার করতে পারেন :
names=['barney','fred','dino']
for i, name in enumerate(names):
print(i + ' ' + name)
if i in (3,4):
# do your thing with the index 'i' or value 'name' for each item...
আপনি যদি কিছু সংজ্ঞায়িত 'সূচক' চিন্তার সন্ধান করেন তবে আমার মনে হয় আপনি ভুল প্রশ্ন করছেন। সম্ভবত আপনার ম্যাপিং ধারক (যেমন ডিক হিসাবে) বনাম একটি সিকোয়েন্স পাত্রে (যেমন একটি তালিকা) ব্যবহার বিবেচনা করা উচিত । আপনি নিজের কোডটি আবার লিখতে পারেন:
def do_something(name):
print('some thing 1 done with ' + name)
def do_something_else(name):
print('something 2 done with ' + name)
def default(name):
print('nothing done with ' + name)
something_to_do={
3: do_something,
4: do_something_else
}
n = input ("Define number of actors: ")
count = 0
names = []
for count in range(n):
print("Define name for actor {}:".format(count+1))
name = raw_input ()
names.append(name)
for name in names:
try:
something_to_do[len(name)](name)
except KeyError:
default(name)
এইভাবে চলমান:
Define number of actors: 3
Define name for actor 1: bob
Define name for actor 2: tony
Define name for actor 3: alice
some thing 1 done with bob
something 2 done with tony
nothing done with alice
আপনি সংক্ষিপ্ত সংস্করণ ব্যতীত চেষ্টা / পরিবর্তে .get পদ্ধতি ব্যবহার করতে পারেন :
>>> something_to_do.get(3, default)('bob')
some thing 1 done with bob
>>> something_to_do.get(22, default)('alice')
nothing done with alice
nকোনও তালিকা হিসাবে নয়, পূর্ণসংখ্যা হিসাবে কাস্ট টাইপ করতে চান । আমি বিভ্রান্ত