色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 虛數去重

錢浩然1年前8瀏覽0評論

Python中的復數是由實數和虛數組成的,虛數的表示方式是在數字后面加上一個字母“j”,例如3j,其中3是實數,j是虛數部分。

在對復數進行去重的時候,通常是將其轉換為字符串進行比較,然后再將其轉回復數。但是,當復數中存在大量重復的虛數部分時,這種方法效率較低。

解決這個問題的方法是自定義復數的比較方法,通過重載__eq__和__hash__方法,讓Python在比較復數是否相等時只比較虛數部分。

class Complex:
def __init__(self, real, imag):
self.real = real
self.imag = imag
def __eq__(self, other):
return self.imag == other.imag
def __hash__(self):
return hash(self.imag)
c1 = Complex(1, 2j)
c2 = Complex(2, 2j)
c3 = Complex(3, 3j)
c4 = Complex(4, 2j)
lst = [c1, c2, c3, c4, c1, c2]
print(list(set(lst)))

在上面的代碼中,我們定義了一個Complex類,并重載了__eq__和__hash__方法。在__eq__方法中,我們只比較虛數部分是否相等;在__hash__方法中,我們只計算虛數部分的哈希值。

最后,我們創建了四個不同的復數對象,其中有兩個虛數部分相同的對象,將它們放入列表中,使用set()函數去重后輸出結果。

通過這種方法,我們可以高效地對復數列表進行去重,提高程序的執行效率。