সম্পর্কিত list
প্রথমে একটি খুব গুরুত্বপূর্ণ বিষয়, যা থেকে সমস্ত কিছুই অনুসরণ করবে (আমি আশা করি)।
সাধারণ পাইথন কোনওভাবেই list
বিশেষ নয় (নির্মাণের জন্য সুন্দর সিনট্যাক্স ব্যতীত, যা বেশিরভাগ aতিহাসিক দুর্ঘটনা। একবার একটি তালিকা [3,2,6]
তৈরি হয়ে গেলে , এটি সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে কেবল একটি সাধারণ পাইথন অবজেক্টের মতো একটি সংখ্যা 3
, সেট {3,7}
বা কোনও ফাংশন lambda x: x+5
।
(হ্যাঁ, এটি এর উপাদানগুলি পরিবর্তন করে, এবং এটি পুনরাবৃত্তি এবং অন্যান্য অনেকগুলি বিষয়কে সমর্থন করে, তবে এটি কেবল এক প্রকার: এটি কিছু অপারেশন সমর্থন করে, অন্য কিছুকে সমর্থন করে না int এটিকে খুব বিশেষ করে তোলেন - এটি কেবল একটি অন্তর্নিহিত জিনিস la ল্যাম্বদা কলিং সমর্থন করে তবে এটি খুব বিশেষ করে না - ল্যাম্বদা এর পরে যা আছে তা :)।
সম্পর্কিত and
and
অপারেটর নয় (আপনি এটিকে "অপারেটর" বলতে পারেন, তবে আপনি "অপারেটরকে" "কল করতেও পারেন :)"। পাইথনের অপারেটরগুলি (এর মাধ্যমে প্রয়োগ করা হয়) কোনও ধরণের অবজেক্টগুলিতে ডাকা পদ্ধতি হয় (সাধারণত প্রয়োগ করা হয়) সেই ধরণের অংশ হিসাবে। কোনও পদ্ধতির কিছু ক্রিয়াকলাপের মূল্যায়ন করার উপায় নেই তবে and
এটি (এবং অবশ্যই) তা করতে পারে।
এর পরিণতি হ'ল and
ওভারলোড করা যায় না, ঠিক তেমনি ওভারলোডও করা for
যায় না। এটি সম্পূর্ণ সাধারণ, এবং একটি নির্দিষ্ট প্রোটোকলের মাধ্যমে যোগাযোগ করে। আপনি যা করতে পারেন তা হ'ল আপনার প্রোটোকলের অংশটি কাস্টমাইজ করা, তবে এর অর্থ এই নয় যে আপনি and
সম্পূর্ণরূপে আচরণ পরিবর্তন করতে পারেন । প্রোটোকলটি হ'ল:
কল্পনা করুন পাইথন "ক এবং খ" এর ব্যাখ্যা করছেন (এটি আক্ষরিকভাবে এভাবে হয় না, তবে এটি বুঝতে সহায়তা করে)। যখন এটি "এবং" এ আসে, তখন এটি সবেমাত্র (ক) মূল্যায়ন করা বস্তুর দিকে নজর দেয় এবং জিজ্ঞাসা করে: আপনি সত্য? ( নয় : আপনি True
?) আপনি যদি কোনও শ্রেণীর লেখক হন তবে আপনি এই উত্তরটি অনুকূলিত করতে পারেন। যদি a
উত্তরগুলি "না", and
(পুরোপুরি এড়িয়ে যায়, এটি মোটেই মূল্যায়ন করা হয় না, এবং) বলে: a
আমার ফলাফল ( নয় : মিথ্যা আমার ফলাফল))
যদি a
উত্তর না দেয় তবে and
জিজ্ঞাসা করুন: আপনার দৈর্ঘ্য কত? (আবার, আপনি a
এটির শ্রেণীর লেখক হিসাবে কাস্টমাইজ করতে পারেন )। যদি a
0 এর উত্তর and
থাকে তবে উপরের মতোটিও - এটি মিথ্যা (মিথ্যা নয় ) হিসাবে বিবেচনা করে , খ উপেক্ষা a
করে, ফলস্বরূপ দেয় ।
তাহলে a
উত্তর কিছু দ্বিতীয় প্রশ্ন 0 ছাড়া অন্য ( "তোমার দৈর্ঘ্য হল"), অথবা এটি এ সব জবাব দিতে পারে নি, অথবা এটি "হ্যাঁ" প্রথম এক ( "আপনি সত্য") এ উত্তর দেন, and
খ মূল্যায়ণ এবং বলেছেন: b
আমার ফলাফল। মনে রাখবেন এটি কোনও প্রশ্ন জিজ্ঞাসা করে নাb
।
এই সমস্ত বলার অন্য a and b
উপায়টি হ'ল প্রায় একই রকম b if a else a
, ব্যতীত কেবল একবার মূল্যায়ন করা হয়।
এখন একটি পেন এবং কাগজ নিয়ে কয়েক মিনিটের জন্য বসে থাকুন এবং নিজেকে বোঝান যে যখন {a, b {যখন {সত্য, মিথ্যা of এর উপসেট হয়, এটি বুলিয়ান অপারেটরদের প্রত্যাশা মতো ঠিক কাজ করে। তবে আমি আশা করি যে আমি আপনাকে নিশ্চিত করেছি যে এটি আরও সাধারণ, এবং আপনি যেমন দেখবেন, এইভাবে আরও অনেক দরকারী।
দুজনকে একসাথে রেখেছি
এখন আমি আশা করি আপনি নিজের উদাহরণটি 1 টি বুঝতে পেরেছেন and
my mylist1 একটি সংখ্যা, তালিকা, ল্যাম্বদা বা কোনও শ্রেণি Argmhbl এর অবজেক্ট কিনা তা বিবেচ্য নয়। এটি কেবল মাইলিস্ট 1 এর প্রোটোকলের প্রশ্নের উত্তর সম্পর্কে যত্নশীল। এবং অবশ্যই, মাইলিস্ট 1 দৈর্ঘ্য সম্পর্কে প্রশ্নের 5 টি উত্তর দেয়, তাই মাইলিস্ট 2 প্রদান করে। এবং এটাই. এটি আমার মাইলিস্ট 1 এবং মাইলিস্ট 2 এর উপাদানগুলির সাথে কিছুই করার নেই - তারা ছবিটি কোথাও প্রবেশ করে না।
দ্বিতীয় উদাহরণ: &
চালুlist
অন্যদিকে &
, +
উদাহরণস্বরূপ , অন্য যে কোনও অপারেটর । এই শ্রেণীর একটি বিশেষ পদ্ধতি নির্ধারণ করে এটি কোনও ধরণের জন্য সংজ্ঞায়িত করা যেতে পারে। int
এটিকে বিটওয়াইজ হিসাবে "এবং" হিসাবে সংজ্ঞায়িত করা হয়েছে, এবং বুল এটিকে যৌক্তিক "এবং" হিসাবে সংজ্ঞায়িত করেছে, তবে এটি কেবল একটি বিকল্প: উদাহরণস্বরূপ, সেট এবং ডিক কী মতামতের মতো কিছু অন্যান্য বিষয় সেট সেটাকে ছেদ করে হিসাবে সংজ্ঞায়িত করে। list
কেবল এটি সংজ্ঞায়িত করা হয়নি, সম্ভবত কারণ গুডো এটি সংজ্ঞায়িত করার কোনও সুস্পষ্ট উপায় সম্পর্কে ভাবেনি।
numpy
অন্যান্য লেগ অন: -D, numpy অ্যারে হয় বিশেষ, বা অন্তত তারা হতে চেষ্টা করছেন। অবশ্যই, numpy.array কেবল একটি শ্রেণি, এটি কোনওভাবেই ওভাররাইড করতে পারে না and
, তাই এটি পরবর্তী সর্বোত্তম কাজটি করে: যখন "আপনি সত্য হন" জিজ্ঞাসা করা হয়, numpy.array কার্যকরভাবে "দয়া করে প্রশ্নটি পুনরায় বলুন," বলে একটি মান উত্থাপন করে সত্যের দর্শন আপনার মডেলের সাথে খাপ খায় না। (নোট করুন যে ভ্যালুআরারের বার্তাটি কথা বলছে না and
- কারণ numpy.array জানেন না কে এটিকে প্রশ্ন জিজ্ঞাসা করছে; এটি কেবল সত্যের কথা বলে))
কারণ &
এটি সম্পূর্ণ ভিন্ন গল্প। numpy.array ইচ্ছামতো এটি সংজ্ঞায়িত করতে পারে এবং এটি &
অন্যান্য অপারেটরগুলির সাথে ধারাবাহিকভাবে সংজ্ঞা দেয় : পয়েন্টওয়াইসওয়্যার। সুতরাং আপনি অবশেষে যা চান তা পাবেন।
আছে HTH,
np.bitwise_and()
এবংnp.logical_and()
এবং বন্ধুদের বিভ্রান্তির এড়ানো।