কম্পিউটার

Python TypeError:সমাধান তালিকাভুক্ত করতে শুধুমাত্র তালিকাকে সংযুক্ত করতে পারে ("int" নয়)

তালিকাগুলি অন্যান্য তালিকার সাথে সংযুক্ত করা যেতে পারে। এর মানে আপনি একটি তালিকার বিষয়বস্তু অন্য তালিকায় যোগ করতে পারেন। পূর্ণসংখ্যার মতো অন্যান্য ডেটা প্রকারের মানগুলিকে একটি তালিকার সাথে সংযুক্ত করা যায় না।

আপনি যদি একটি তালিকায় একটি পূর্ণসংখ্যা সংযোজন করার চেষ্টা করেন, পাইথন দোভাষী একটি "TypeError:ক্যান ক্যান ক্যানক্যাটেনেট লিস্ট ("int") থেকে তালিকাভুক্ত করার ত্রুটি।

এই নির্দেশিকায়, আমরা এই ত্রুটির অর্থ কী এবং এটি কীভাবে কাজ করে সে সম্পর্কে কথা বলি। আপনার কোডে এই সমস্যার সমাধান করার জন্য আপনাকে নেভিগেট করতে সাহায্য করার জন্য আমরা একটি উদাহরণ দিয়ে চলেছি৷

TypeError:শুধুমাত্র তালিকাকে সংযুক্ত করতে পারে ("int" নয়) তালিকাভুক্ত করতে

সংযুক্তি দুটি তালিকা একসাথে যোগ করা সহজ করে তোলে। অন্য তালিকায় একটি তালিকা যোগ করার জন্য আপনি যখন extend() পদ্ধতি ব্যবহার করতে পারেন, তখন সংযোগের জন্য শুধুমাত্র একটি চিহ্ন ব্যবহার করা প্রয়োজন:প্লাস চিহ্ন (+)।

তালিকাগুলি একমাত্র বস্তু নয় যা একত্রিত করা যেতে পারে। যেকোন পুনরাবৃত্তিযোগ্য বস্তু, যেমন একটি অভিধান বা একটি টিপল, সংযুক্ত করা যেতে পারে।

বিভিন্ন ডাটা টাইপের দুটি বস্তুকে একত্রিত করা যায় না। এর অর্থ হল আপনি একটি অভিধানের সাথে একটি তালিকা বা একটি তালিকার সাথে একটি পূর্ণসংখ্যা সংযুক্ত করতে পারবেন না।

আপনি যদি একটি তালিকায় একটি একক পূর্ণসংখ্যা আইটেম যোগ করতে সংযোজন ব্যবহার করেন তবে আপনি "TypeError:শুধুমাত্র তালিকাকে সংযুক্ত করতে পারেন ("int" নয়) তালিকায়।

একটি উদাহরণ দৃশ্য

আমরা একটি প্রোগ্রাম তৈরি করতে যাচ্ছি যা শুক্রবারে একটি ক্যাফেতে নির্দিষ্ট স্যান্ডউইচের জন্য কতগুলি অর্ডার দেওয়া হয়েছে তা ট্র্যাক করে। আমরা 75 বারের বেশি অর্ডার করা সমস্ত স্যান্ডউইচগুলিকে ফিল্টার করতে চাই যাতে আমরা দেখতে পারি কোন স্যান্ডউইচগুলি সবচেয়ে জনপ্রিয়৷

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগদানের পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

আমরা দুটি তালিকা সংজ্ঞায়িত করে শুরু করি:স্যান্ডউইচের একটি তালিকা এবং প্রতিটি স্যান্ডউইচের জন্য কতগুলি অর্ডার দেওয়া হয়েছিল তা ধারণকারী একটি তালিকা।

sandwiches = ["Egg and Cress", "Chicken Club", "Hummus and Tomato", "Cheese"]
orders = [54, 77, 22, 98]

আমাদের তালিকাগুলি "স্যান্ডউইচ" এবং "অর্ডার" ভেরিয়েবলগুলিতে বরাদ্দ করা হয়েছে। এর পরে, আমরা একটি তালিকা সংজ্ঞায়িত করি যা 75 বারের বেশি অর্ডার করা স্যান্ডউইচগুলির সূচক নম্বরগুলিকে ট্র্যাক করে৷

orders_75 = []

এই মুহুর্তে, এই তালিকাগুলি খালি। এর কারণ হল আমরা এখনও খুঁজে পাইনি কোন স্যান্ডউইচ 75 বারের বেশি অর্ডার করা হয়েছে।

এরপরে, আমরা আমাদের স্যান্ডউইচের তালিকা এবং অর্ডারগুলির উপর পুনরাবৃত্তি করি কোন স্যান্ডউইচগুলি 75 বারের বেশি অর্ডার করা হয়েছে তা খুঁজে বের করতে। আমরা একটি লুপ ব্যবহার করে এটি করতে পারি:

for s in range(0, len(sandwiches)):
	if orders[s] > 75:
		orders_75 = orders_75 + s

আমাদের কোড 0 এর পরিসীমা এবং "স্যান্ডউইচ" তালিকার দৈর্ঘ্যের প্রতিটি সংখ্যার মধ্য দিয়ে লুপ করে। যদি একটি স্যান্ডউইচের জন্য "অর্ডার" তালিকায় সংশ্লিষ্ট মান 75-এর বেশি হয়, আমরা "orders_75" তালিকায় সেই স্যান্ডউইচের সূচকের অবস্থান যোগ করি।

এর পরে, আমরা একটি লুপ লিখি যা আমাদের প্রোগ্রামটি কাজ করে কিনা তা পরীক্ষা করার জন্য কোন স্যান্ডউইচগুলি 75 বারের বেশি অর্ডার করা হয়েছে তা প্রিন্ট করে:

for o in orders_75:
	print(sandwiches[o])

আসুন আমাদের পাইথন কোড রান করি এবং দেখি কি হয়:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
	orders_75 = orders_75 + s
TypeError: can only concatenate list (not "int") to list

আমাদের কোড একটি ত্রুটি প্রদান করে৷

সমাধান

আমাদের ত্রুটি বার্তায় উল্লিখিত কোডের লাইনটি দেখুন:

	orders_75 = orders_75 + s

আমরা আমাদের তালিকায় একটি পূর্ণসংখ্যা মান সংযুক্ত করার চেষ্টা করছি। আমরা এটি করতে পারি না কারণ সংযোগ শুধুমাত্র একই ডেটা টাইপের পুনরাবৃত্তিযোগ্য বস্তুতে কাজ করে।

এই ত্রুটিটি সমাধান করতে, আমাদের অবশ্যই append() ব্যবহার করতে হবে আমাদের তালিকায় একটি আইটেম যোগ করার পদ্ধতি। এই পদ্ধতিটি বিশেষভাবে তালিকায় আইটেম যোগ করার জন্য ডিজাইন করা হয়েছে। আইটেম যেকোন ডেটা টাইপের হতে পারে, যেমন অভিধান, পূর্ণসংখ্যা বা ভাসমান-বিন্দু সংখ্যা।

append() ব্যবহার করতে আমাদের orders_75 লাইন কোড পরিবর্তন করুন পদ্ধতি:

	orders_75.append(s)

আমাদের “orders_75”-এ কোনো মান নির্ধারণ করতে হবে না কারণ append() মেথড ইন-প্লেস তালিকায় একটি আইটেম যোগ করে। আমাদের কোড চালানো যাক:

Chicken Club
Cheese

আমাদের কোড 75 বারের বেশি অর্ডার করা স্যান্ডউইচগুলির একটি তালিকা প্রিন্ট করে। দুটি স্যান্ডউইচ রয়েছে যা এই মানদণ্ড পূরণ করেছে:চিকেন ক্লাব এবং পনির৷

উপসংহার

"TypeError:শুধুমাত্র তালিকাকে সংযুক্ত করতে পারে ("int" নয়) তালিকায়" ত্রুটি উত্থাপিত হয় যখন আপনি একটি তালিকায় একটি পূর্ণসংখ্যা সংযুক্ত করার চেষ্টা করেন।

এই ত্রুটিটি উত্থাপিত হয়েছে কারণ শুধুমাত্র তালিকাগুলিকে তালিকার সাথে সংযুক্ত করা যেতে পারে৷ এই ত্রুটিটি সমাধান করতে, append() ব্যবহার করুন একটি তালিকায় একটি আইটেম যোগ করার পদ্ধতি।

এখন আপনি পেশাদারের মতো এই পাইথন ত্রুটিটি সমাধান করতে প্রস্তুত!


  1. কিভাবে আমরা অপারেটরে পাইথন গতি বাড়াতে পারি?

  2. পাইথনের তালিকায় নেই এমন একটি র্যান্ডম নম্বর কীভাবে বাছাই করবেন?

  3. পাইথনে দ্বিতীয় তালিকায় (সংযুক্ত তালিকা) তালিকা কীভাবে যুক্ত করবেন?

  4. কিভাবে আমরা পাইথন ফাংশন থেকে একটি তালিকা ফেরত দিতে পারি?