পাইথনে টাপল (Tuple) ব্যবহার করে ইমিউটেবল ভেক্টর রিপ্রেজেন্ট করা যায়। টাপল ইমিউটেবল, অর্ডার্ড এবং লিস্ট চেয়ে দ্রুত।
উদাহরণ
myVec = (10, 15, 21) # অ্যাক্সেস print(myVec[0]) # 10 # মিউটেশন চেষ্টা → Error myVec[0] = 10 # TypeError: 'tuple' object does not support item assignment
ভেক্টর অপারেশন (হেল্পার ফাংশন)
def vec_add(v1, v2):
return tuple(a + b for a, b in zip(v1, v2))
def vec_dot(v1, v2):
return sum(a * b for a, b in zip(v1, v2))
def vec_scale(v, scalar):
return tuple(x * scalar for x in v)
v1 = (1, 2, 3)
v2 = (4, 5, 6)
print(vec_add(v1, v2)) # (5, 7, 9)
print(vec_dot(v1, v2)) # 32
print(vec_scale(v1, 2)) # (2, 4, 6)
অলтернаেটিভ: NamedTuple (Python 3.6+)
from typing import NamedTuple
class Vector3D(NamedTuple):
x: float
y: float
z: float
v = Vector3D(1.0, 2.0, 3.0)
print(v.x, v.y, v.z) #Named attribute access
NumPy অ্যারে (পারফরম্যান্স)
বড় স্কেল ভেক্টর ম্যাথের জন্য numpy.array ব্যবহার করুন (মিউটেবল কিন্তু দ্রুত)।