如何判斷乙個集合是否包含這個元素

2021-10-13 12:42:10 字數 2014 閱讀 6088

如何判斷乙個集合是否包含這個元素?本文番茄加速就來講一下這個知識點。

isin [1]: a = [1,2,3]

in [2]: id(a) #獲取列表例項 a在記憶體中的位址

out[2]: 95219592

in [5]: b = [1,2,3] #再建立乙個列表例項,元素取值也為 1,2,3

in [6]: id(b)

out[6]: 95165640

in [7]: a is b # is操作符本質上判斷a 和 b的記憶體位址是否相等

out[7]: false

in [8]: b = a # 令b 指向 a,此時b is a 返回 true

in [9]: b is a

out[9]: true

inin是判斷是否包含,判斷乙個集合(如list、tuple)是否包含這個元素

in [70]: 『ab』 in 『abc』

out[70]: true

in [71]: 『ab』 in 『acb』

out[71]: false

in [72]: print([1,2] in [[1,2],『str』])

true

字典只能判斷key 存不存在

in [73]: print(『abc』 in )

true

in [74]: print(『12』 in )

false

== 判斷值是否相等,等不等關係。

in [75]: str1 = 「alg-channel」

in [76]: str2 = 「alg-channel」

in [77]: print(str1 == str2)

true

in [78]: a = [1, 2, 3]

in [79]: b = [1, 2, 4]

in [80]: a == b

out[80]: false

擴充套件目前最常使用 is 的地方是判斷物件是否為 none:

in [78]: a = [1, 2, 3]

in [81]: a is none

out[81]: false

in [82]: none is none

out[82]: true

== 預設呼叫物件的__eq__()方法。繼承自object物件的__eq__()方法直接比較兩個物件的id. 很不幸,很多實際場景中,與我們期望相悖。

class student(object):

definit(self,id,name):

self.id = id

self.name = name

defeq(self, *args, **kwargs):

return object.eq(self, *args, **kwargs)

xiaoming = student(25, 「xiaoming」)

xueming = student(23, 「xueming」)

xiaoming2 = student(25,「xiaoming」)

print(xiaoming is xiaoming2) #false

print(xiaoming == xiaoming2) #false

print(xiaoming is xueming) #false

xiaoming和xiaoming2的屬性一致,期望判斷出他們是同一人,但是不管is 還是 == 都比較了id是否相等。需要重寫 == 操作符預設呼叫的__eq__()方法

defeq(self,other):

return self.id == other.id and self.name == other.name

大多數時候繼承object的類會覆蓋__eq__()方法,比較自定義物件的值可能更有用。

Java 如何判斷乙個陣列中是否包含某個元素

public static boolean uselist string arr,string targetvalue public static boolean useset string arr,string targetvalue public static boolean useloop s...

判斷乙個鍊錶中是否包含環

1 如何判斷乙個鍊錶是不是這類鍊錶?2 如果鍊錶為存在環,如果找到環的入口點?解答 一 判斷鍊錶是否存在環,辦法為 設定兩個指標 fast,slow 初始值都指向頭,slow每次前進一步,fast每次前進二步,如果鍊錶存在環,則fast必定先進入環,而slow後進入環,兩個指標必定相遇。當然,fas...

如何判斷乙個變數是否包含在表的乙個欄位中

今天在做乙個資料庫查詢的時候遇到了乙個難題,就是如何根據給定的引數判斷該引數是否在資料庫表的某個欄位中,並返回記錄集。例如 給定引數為 2 資料庫表的某個字段值為 1,2,4,15或者3,11,13或者null等等 那麼如何根據傳進來的2找到相應的記錄,即字段值為1,2,4,15的那條記錄 最後找到...