python中 使用列表推導自定義向量的加減乘

2021-08-15 14:48:36 字數 1606 閱讀 1144

# coding=utf-8

class vector(object):

"""docstring for vector"""

"""根據座標軸列表輸入 建立向量, 並建立該向量所處的空間維度"""

def __init__(self, coordinates):

super(vector, self).__init__()

try:

if not coordinates:

raise valueerror

self.coordinates = tuple(coordinates)

self.dimension = len(coordinates)

except valueerror:

raise valueerror('the coordinates must be nonempty')

except typeerror:

raise typeerror('the coordinates must be an iterable')

# '''能夠使python的內建print函式 輸出向量座標軸'''

def __str__(self):

return 'vector: {}'.format(self.coordinates)

def __eq__(self, v):

return self.coordinates == v.coordinates

def plus(self,v):

# 使用列表推導

new_corrdinate =[x+y for x,y in zip(self.coordinates, v.coordinates)]

# 使用for迴圈

# new_corrdinate =

# n = len(self.coordinates)

# for i in range(n):

return vector(new_corrdinate)

def minus(self,v):

new_corrdinate = [x-y for x,y in zip(self.coordinates, v.coordinates)]

return vector(new_corrdinate)

def scalarmultiply(self,num):

new_corrdinate =[num * x for x in self.coordinates]

return vector(new_corrdinate)

myvector = vector([1,2,3])

othervector = vector([2,3,3])

print myvector.plus(othervector)

print myvector.minus(othervector)

print myvector.scalarmultiply(3)

# 輸出結果

# vector: (3, 5, 6)

# vector: (-1, -1, 0)

# vector: (3, 6, 9)

# [finished in 0.1s]

Python 列表推導式中使用if

列表推導式 又稱列表解析式 提供了一種簡明扼要的方法來建立列表。它的結構是在乙個中括號裡包含乙個表示式,然後是乙個for語句,然後是 0 個或多個 for 或者 if 語句。那個表示式可以是任意的,意思是你可以在列表中放入任意型別的物件。返回結果將是乙個新的列表,在這個以 if 和 for 語句為上...

python列表推導式使用

列表推導式 alist 一般的操作方式 for x in range 30 print alist alist x x for x in range 30 使用列表推導式,形式上更加簡潔 print alist alist 一般的操作方法 for x in freshfruit print alis...

Python 列表推導

1.正常情況下,我們這樣來遍歷列表 numbers range 10 size len numbers evens i 0 while i size if i 2 0 i 1 for f in evens print f 2.當然可以用更簡單的python支援的列表推導 i for i in ran...