Class - XII: SEMESTER – III: Unit – 1: Python Programming: Section 10: Lists
Python Programming: Lists
১. List কী?
Python programming language-এ List হলো একটি built-in data structure, যার মাধ্যমে একাধিক value একসাথে একটি variable-এর মধ্যে store করা যায়। সহজভাবে বললে, list হলো ordered collection of items। একটি list-এর মধ্যে number, string, boolean, float এমনকি অন্য list-ও রাখা যায়।
বাস্তব জীবনে list-এর মতো অনেক উদাহরণ আছে। যেমন student names-এর list, marks-এর list, product price-এর list,
shopping cart-এর items, employee ID-এর list ইত্যাদি। Python-এ list square brackets [ ] ব্যবহার করে তৈরি করা হয়।
Example:
numbers = [10, 20, 30, 40, 50]
names = ["Rahim", "Karim", "Salma"]
mixed_list = [101, "Python", 95.5, True]
print(numbers)
print(names)
print(mixed_list)
এখানে numbers list-এর মধ্যে integer values আছে, names list-এর মধ্যে string values আছে,
এবং mixed_list list-এর মধ্যে বিভিন্ন ধরনের data type আছে।
২. List-এর বৈশিষ্ট্য
- List ordered — অর্থাৎ elements নির্দিষ্ট order-এ থাকে।
- List mutable — element পরিবর্তন করা যায়।
- List duplicate values allow করে।
- List-এর মধ্যে different data types রাখা যায়।
- List indexing এবং slicing support করে।
- List nested হতে পারে, অর্থাৎ list-এর ভিতরে আরেকটি list রাখা যায়।
Duplicate Example:
values = [10, 20, 10, 30, 20]
print(values)
এখানে 10 এবং 20 একাধিকবার আছে। Python list duplicate elements allow করে।
৩. List Indexing
List-এর প্রতিটি element-এর একটি position থাকে, যাকে index বলা হয়।
Python-এ indexing শুরু হয় 0 থেকে। অর্থাৎ প্রথম element-এর index 0, দ্বিতীয় element-এর index 1।
Example:
fruits = ["Apple", "Banana", "Mango", "Orange"]
print(fruits[0])
print(fruits[1])
print(fruits[3])
Output:
Apple
Banana
Orange
এখানে fruits[0] প্রথম element, fruits[1] দ্বিতীয় element এবং fruits[3] চতুর্থ element return করছে।
Negative Indexing:
Python-এ negative indexing ব্যবহার করে list-এর শেষ দিক থেকে elements access করা যায়।
শেষ element-এর index -1, তার আগের element-এর index -2।
fruits = ["Apple", "Banana", "Mango", "Orange"]
print(fruits[-1])
print(fruits[-2])
Output:
Orange
Mango
৪. List Element পরিবর্তন করা
যেহেতু list mutable, তাই index ব্যবহার করে list-এর element পরিবর্তন করা যায়।
numbers = [10, 20, 30, 40]
numbers[1] = 200
print(numbers)
Output:
[10, 200, 30, 40]
এখানে index 1-এর value 20 পরিবর্তন করে 200 করা হয়েছে।
৫. List Operations
Python list-এর উপর বিভিন্ন operation করা যায়। গুরুত্বপূর্ণ list operations হলো:
- Concatenation
- Repetition
- Membership
- Slicing
৬. List Concatenation
দুই বা ততোধিক list একসাথে যুক্ত করার প্রক্রিয়াকে list concatenation বলা হয়।
Python-এ list concatenate করার জন্য + operator ব্যবহার করা হয়।
Example:
list1 = [10, 20, 30]
list2 = [40, 50, 60]
result = list1 + list2
print(result)
Output:
[10, 20, 30, 40, 50, 60]
এখানে list1 এবং list2 যুক্ত হয়ে একটি নতুন list তৈরি হয়েছে।
৭. List Repetition
একই list একাধিকবার repeat করার জন্য * operator ব্যবহার করা হয়।
values = [1, 2, 3]
result = values * 3
print(result)
Output:
[1, 2, 3, 1, 2, 3, 1, 2, 3]
এখানে list তিনবার repeat হয়েছে।
৮. Membership Operation
কোনো value list-এর মধ্যে আছে কিনা তা check করতে in এবং not in operators ব্যবহার করা হয়।
numbers = [10, 20, 30, 40, 50]
print(30 in numbers)
print(100 in numbers)
print(100 not in numbers)
Output:
True
False
True
Practical Example:
students = ["Rahim", "Karim", "Salma"]
name = input("Student name লিখুন: ")
if name in students:
print("Student found")
else:
print("Student not found")
৯. List Slicing
List-এর নির্দিষ্ট অংশ বের করার জন্য slicing ব্যবহার করা হয়। Slicing-এর মাধ্যমে list-এর subset বা portion পাওয়া যায়।
Syntax:
list_name[start : stop : step]
| Part | ব্যাখ্যা |
|---|---|
start |
কোন index থেকে শুরু হবে |
stop |
কোন index-এর আগ পর্যন্ত যাবে |
step |
কত ধাপ করে এগোবে |
Example:
numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[1:5])
print(numbers[:4])
print(numbers[3:])
print(numbers[::2])
print(numbers[::-1])
Output:
[20, 30, 40, 50]
[10, 20, 30, 40]
[40, 50, 60, 70]
[10, 30, 50, 70]
[70, 60, 50, 40, 30, 20, 10]
numbers[::-1] list-কে reverse order-এ return করে।
১০. Traversing a List using Loops
List-এর প্রতিটি element একে একে access বা process করার প্রক্রিয়াকে list traversal বলা হয়।
Python-এ list traverse করার জন্য সাধারণত for loop এবং while loop ব্যবহার করা হয়।
Using for Loop:
numbers = [10, 20, 30, 40]
for num in numbers:
print(num)
Using index with for Loop:
numbers = [10, 20, 30, 40]
for i in range(len(numbers)):
print("Index:", i, "Value:", numbers[i])
Using while Loop:
numbers = [10, 20, 30, 40]
i = 0
while i < len(numbers):
print(numbers[i])
i = i + 1
for loop direct element access করার জন্য সহজ।
আর index দরকার হলে range(len(list)) ব্যবহার করা যায়।
১১. len()
len() function list-এর total element সংখ্যা return করে।
numbers = [10, 20, 30, 40, 50]
print(len(numbers))
Output:
5
১২. list()
list() function ব্যবহার করে অন্য iterable object যেমন string, tuple, range ইত্যাদিকে list-এ convert করা যায়।
text = "Python"
letters = list(text)
print(letters)
Output:
['P', 'y', 't', 'h', 'o', 'n']
range থেকে list:
numbers = list(range(1, 6))
print(numbers)
Output:
[1, 2, 3, 4, 5]
১৩. append()
append() method list-এর শেষে একটি নতুন element add করে।
fruits = ["Apple", "Banana"]
fruits.append("Mango")
print(fruits)
Output:
['Apple', 'Banana', 'Mango']
append() একবারে শুধুমাত্র একটি element add করে।
১৪. extend()
extend() method একটি list-এর শেষে অন্য list বা iterable-এর সব elements add করে।
list1 = [10, 20]
list2 = [30, 40]
list1.extend(list2)
print(list1)
Output:
[10, 20, 30, 40]
append() পুরো object-কে একটি single element হিসেবে add করে,
কিন্তু extend() iterable-এর প্রতিটি element আলাদা করে add করে।
Difference Example:
a = [1, 2]
a.append([3, 4])
print(a)
b = [1, 2]
b.extend([3, 4])
print(b)
Output:
[1, 2, [3, 4]]
[1, 2, 3, 4]
১৫. insert()
insert() method list-এর নির্দিষ্ট index-এ একটি element add করে।
Syntax:
list_name.insert(index, value)
Example:
numbers = [10, 20, 40, 50]
numbers.insert(2, 30)
print(numbers)
Output:
[10, 20, 30, 40, 50]
এখানে index 2-তে 30 insert করা হয়েছে।
১৬. count()
count() method list-এর মধ্যে কোনো element কতবার আছে তা return করে।
numbers = [10, 20, 10, 30, 10, 40]
print(numbers.count(10))
Output:
3
১৭. index()
index() method list-এর মধ্যে কোনো element-এর প্রথম occurrence-এর index return করে।
যদি element না থাকে, তাহলে ValueError দেয়।
numbers = [10, 20, 30, 40]
print(numbers.index(30))
Output:
2
Safe Search Example:
numbers = [10, 20, 30, 40]
value = 50
if value in numbers:
print(numbers.index(value))
else:
print("Value not found")
১৮. remove()
remove() method list থেকে নির্দিষ্ট value remove করে।
যদি value একাধিকবার থাকে, তাহলে প্রথম occurrence remove করে।
numbers = [10, 20, 30, 20, 40]
numbers.remove(20)
print(numbers)
Output:
[10, 30, 20, 40]
remove() error দেয়। তাই safe remove করতে আগে membership check করা ভালো।
numbers = [10, 20, 30]
value = 40
if value in numbers:
numbers.remove(value)
else:
print("Value list-এ নেই")
১৯. pop()
pop() method list থেকে element remove করে এবং removed element return করে।
যদি index না দেওয়া হয়, তাহলে শেষ element remove করে।
numbers = [10, 20, 30, 40]
removed_value = numbers.pop()
print("Removed:", removed_value)
print(numbers)
Output:
Removed: 40
[10, 20, 30]
Index দিয়ে pop:
numbers = [10, 20, 30, 40]
removed_value = numbers.pop(1)
print("Removed:", removed_value)
print(numbers)
Output:
Removed: 20
[10, 30, 40]
২০. reverse()
reverse() method original list-কে reverse order-এ সাজায়।
এটি list modify করে এবং নতুন list return করে না।
numbers = [10, 20, 30, 40]
numbers.reverse()
print(numbers)
Output:
[40, 30, 20, 10]
Slicing দিয়ে reverse:
numbers = [10, 20, 30, 40]
reversed_list = numbers[::-1]
print(reversed_list)
২১. sort() এবং sorted()
Python-এ list sort করার জন্য sort() method এবং sorted() function ব্যবহার করা হয়।
sort()
sort() original list-কে sort করে। এটি list modify করে।
numbers = [40, 10, 30, 20]
numbers.sort()
print(numbers)
Output:
[10, 20, 30, 40]
Descending order:
numbers = [40, 10, 30, 20]
numbers.sort(reverse=True)
print(numbers)
Output:
[40, 30, 20, 10]
sorted()
sorted() original list পরিবর্তন না করে একটি নতুন sorted list return করে।
numbers = [40, 10, 30, 20]
new_list = sorted(numbers)
print("Original:", numbers)
print("Sorted:", new_list)
Output:
Original: [40, 10, 30, 20]
Sorted: [10, 20, 30, 40]
sort() original list change করে, কিন্তু sorted() নতুন sorted list return করে।
২২. min(), max() এবং sum()
Numeric list-এর উপর common mathematical operations করার জন্য min(), max(), এবং sum() খুব useful।
| Function | কাজ | Example |
|---|---|---|
min() |
List-এর minimum value return করে | min([10, 20, 5]) → 5 |
max() |
List-এর maximum value return করে | max([10, 20, 5]) → 20 |
sum() |
List-এর numeric values যোগ করে | sum([10, 20, 5]) → 35 |
Example:
marks = [80, 75, 90, 65, 88]
print("Minimum:", min(marks))
print("Maximum:", max(marks))
print("Total:", sum(marks))
print("Mean:", sum(marks) / len(marks))
২৩. Nested Lists
একটি list-এর ভিতরে আরেকটি list থাকলে তাকে Nested List বলা হয়। Nested list সাধারণত matrix, table, student records, 2D data ইত্যাদি store করার জন্য ব্যবহার করা হয়।
Example:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix)
Nested List Element Access:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[0][0])
print(matrix[1][2])
print(matrix[2][1])
Output:
1
6
8
এখানে matrix[1][2] মানে দ্বিতীয় row-এর তৃতীয় element।
Nested List Traversal:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for value in row:
print(value, end=" ")
print()
Output:
1 2 3
4 5 6
7 8 9
২৪. List Methods Summary Table
| Function / Method | কাজ | Example |
|---|---|---|
len() |
List-এর length return করে | len([10, 20]) → 2 |
list() |
Iterable object-কে list-এ convert করে | list("abc") |
append() |
List-এর শেষে element add করে | numbers.append(50) |
extend() |
List-এর শেষে অন্য iterable-এর elements add করে | a.extend(b) |
insert() |
নির্দিষ্ট index-এ element add করে | a.insert(1, 100) |
count() |
Element কতবার আছে count করে | a.count(10) |
index() |
Element-এর প্রথম index return করে | a.index(20) |
remove() |
নির্দিষ্ট value remove করে | a.remove(10) |
pop() |
Index অনুযায়ী element remove করে এবং return করে | a.pop() |
reverse() |
Original list reverse করে | a.reverse() |
sort() |
Original list sort করে | a.sort() |
sorted() |
নতুন sorted list return করে | sorted(a) |
min() |
Minimum value return করে | min(a) |
max() |
Maximum value return করে | max(a) |
sum() |
Numeric list-এর total return করে | sum(a) |
২৫. Suggested Program ১: List-এর Maximum, Minimum এবং Mean বের করা
Numeric values stored in a list থেকে maximum, minimum এবং mean বের করা list-এর একটি common practical program। Mean বলতে average বোঝায়, অর্থাৎ total sum-কে total element সংখ্যা দিয়ে ভাগ করলে mean পাওয়া যায়।
Program using built-in functions:
numbers = [10, 25, 5, 40, 30]
maximum_value = max(numbers)
minimum_value = min(numbers)
mean_value = sum(numbers) / len(numbers)
print("Maximum:", maximum_value)
print("Minimum:", minimum_value)
print("Mean:", mean_value)
Output:
Maximum: 40
Minimum: 5
Mean: 22.0
Program with user input:
numbers = []
n = int(input("কতগুলো number input করবেন? "))
for i in range(n):
value = int(input("Number লিখুন: "))
numbers.append(value)
maximum_value = max(numbers)
minimum_value = min(numbers)
mean_value = sum(numbers) / len(numbers)
print("List:", numbers)
print("Maximum:", maximum_value)
print("Minimum:", minimum_value)
print("Mean:", mean_value)
Manual Method without max(), min(), sum():
numbers = [10, 25, 5, 40, 30]
maximum_value = numbers[0]
minimum_value = numbers[0]
total = 0
for value in numbers:
if value > maximum_value:
maximum_value = value
if value < minimum_value:
minimum_value = value
total = total + value
mean_value = total / len(numbers)
print("Maximum:", maximum_value)
print("Minimum:", minimum_value)
print("Mean:", mean_value)
এই manual method list traversal, condition এবং calculation একসাথে practice করার জন্য খুব ভালো।
২৬. Suggested Program ২: Linear Search on List of Numbers
Linear Search হলো একটি simple searching technique, যেখানে list-এর প্রতিটি element একে একে check করা হয়। যদি target value পাওয়া যায়, তাহলে search successful হয়। যদি list-এর সব element check করার পরও value না পাওয়া যায়, তাহলে search unsuccessful হয়।
Program:
numbers = [10, 20, 30, 40, 50]
target = int(input("Search value লিখুন: "))
found = False
for i in range(len(numbers)):
if numbers[i] == target:
print("Value found at index:", i)
found = True
break
if found == False:
print("Value not found")
Explanation:
- প্রথমে একটি list নেওয়া হয়েছে।
- User থেকে search value input নেওয়া হয়েছে।
foundvariable initiallyFalseরাখা হয়েছে।- Loop দিয়ে list-এর প্রতিটি element check করা হয়েছে।
- যদি target value পাওয়া যায়, index print করে loop
breakকরা হয়েছে। - যদি value না পাওয়া যায়, তাহলে শেষে “Value not found” message দেখানো হয়েছে।
Linear Search with Multiple Occurrences:
numbers = [10, 20, 30, 20, 40, 20]
target = int(input("Search value লিখুন: "))
positions = []
for i in range(len(numbers)):
if numbers[i] == target:
positions.append(i)
if len(positions) > 0:
print("Value found at indexes:", positions)
else:
print("Value not found")
এই program target value-এর সব positions list আকারে দেখায়।
২৭. Suggested Program ৩: Counting Frequency of Elements in a List
List-এর মধ্যে কোন element কতবার আছে তা count করাকে frequency counting বলা হয়। এটি data analysis, voting count, marks analysis, duplicate detection ইত্যাদিতে ব্যবহার করা যায়।
Using count() method:
numbers = [10, 20, 10, 30, 20, 10, 40]
checked = []
for value in numbers:
if value not in checked:
frequency = numbers.count(value)
print(value, "appears", frequency, "times")
checked.append(value)
Output:
10 appears 3 times
20 appears 2 times
30 appears 1 times
40 appears 1 times
Using dictionary:
numbers = [10, 20, 10, 30, 20, 10, 40]
frequency = {}
for value in numbers:
if value in frequency:
frequency[value] = frequency[value] + 1
else:
frequency[value] = 1
print(frequency)
Output:
{10: 3, 20: 2, 30: 1, 40: 1}
Dictionary ব্যবহার করলে প্রতিটি value key হিসেবে থাকে এবং তার count value হিসেবে store হয়।
২৮. Complete Practice Program
নিচের program-এ list input, append, traversal, max, min, mean, linear search এবং frequency count একসাথে দেখানো হয়েছে।
numbers = []
n = int(input("কতগুলো number input করবেন? "))
for i in range(n):
value = int(input("Number লিখুন: "))
numbers.append(value)
print("Your list:", numbers)
print("Maximum:", max(numbers))
print("Minimum:", min(numbers))
print("Sum:", sum(numbers))
print("Mean:", sum(numbers) / len(numbers))
target = int(input("Search value লিখুন: "))
found = False
for i in range(len(numbers)):
if numbers[i] == target:
print("Value found at index:", i)
found = True
break
if not found:
print("Value not found")
frequency = {}
for value in numbers:
if value in frequency:
frequency[value] = frequency[value] + 1
else:
frequency[value] = 1
print("Frequency:", frequency)
Program Explanation:
- User থেকে কতগুলো number input নেওয়া হবে তা নেওয়া হয়েছে।
- Loop ব্যবহার করে values list-এ append করা হয়েছে।
max(),min(),sum()এবংlen()দিয়ে basic statistics বের করা হয়েছে।- Linear search ব্যবহার করে target value list-এর মধ্যে আছে কিনা check করা হয়েছে।
- Dictionary ব্যবহার করে প্রতিটি element-এর frequency count করা হয়েছে।
২৯. Common Mistakes in Lists
- Index out of range: list-এর length-এর বাইরে index access করলে error হয়।
- append() এবং extend() confuse করা: append একটি element add করে, extend iterable-এর elements add করে।
- sort() এবং sorted() confuse করা: sort original list modify করে, sorted নতুন list return করে।
- remove() value না থাকলে error দেয়: remove করার আগে value আছে কিনা check করা ভালো।
- empty list-এ min(), max() ব্যবহার: empty list হলে error হবে।
- sum() non-numeric list-এ ব্যবহার: string বা mixed list হলে sum() error দিতে পারে।
Safe min/max Example:
numbers = []
if len(numbers) > 0:
print(max(numbers))
else:
print("List খালি, maximum বের করা যাবে না")
৩০. উপসংহার
Python list একটি অত্যন্ত গুরুত্বপূর্ণ এবং powerful data structure। একাধিক data একসাথে store, update, remove এবং process করার জন্য list ব্যবহার করা হয়। List ordered, mutable এবং flexible হওয়ার কারণে real-world programming-এ এর ব্যবহার অনেক বেশি।
List indexing, slicing, concatenation, repetition এবং membership operations আমাদের list-এর data access ও manipulate করতে সাহায্য করে।
Loop ব্যবহার করে list traverse করলে প্রতিটি element আলাদাভাবে process করা যায়। Built-in functions এবং methods যেমন
len(), append(), extend(), insert(), remove(),
pop(), sort(), sorted(), min(), max() এবং sum()
list handling-কে আরও সহজ ও efficient করে।
Nested lists matrix বা tabular data represent করতে সাহায্য করে। Maximum, minimum, mean calculation, linear search এবং frequency counting-এর মতো programs list-এর practical use বুঝতে খুব গুরুত্বপূর্ণ। Python-এ list ভালোভাবে আয়ত্ত করতে পারলে data processing, automation, searching, sorting, report generation এবং real-world software development অনেক সহজ হয়ে যায়।